@googlemaps/routing 3.0.0 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/protos/google/maps/routing/v2/polyline_details.proto +39 -0
- package/build/protos/google/maps/routing/v2/route_modifiers.proto +10 -0
- package/build/protos/google/maps/routing/v2/routes_service.proto +21 -5
- package/build/protos/google/maps/routing/v2/toll_passes.proto +3 -0
- package/build/protos/google/maps/routing/v2/waypoint.proto +1 -1
- package/build/protos/protos.d.ts +338 -1
- package/build/protos/protos.js +1 -1
- package/build/protos/protos.json +63 -1
- package/build/src/v2/routes_client.d.ts +2 -2
- package/build/src/v2/routes_client.js +4 -4
- package/package.json +1 -6
package/build/protos/protos.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(global,factory){if(typeof define==="function"&&define.amd)define(["protobufjs/minimal"],factory);else if(typeof require==="function"&&typeof module==="object"&&module&&module.exports)module.exports=factory(require("google-gax/build/src/protobuf").protobufMinimal)})(this,function($protobuf){"use strict";var $Reader=$protobuf.Reader,$Writer=$protobuf.Writer,$util=$protobuf.util;var $root=$protobuf.roots._googlemaps_routing_protos||($protobuf.roots._googlemaps_routing_protos={});$root.google=function(){var google={};google.protobuf=function(){var protobuf={};protobuf.Any=function(){function Any(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Any.prototype.type_url="";Any.prototype.value=$util.newBuffer([]);Any.create=function create(properties){return new Any(properties)};Any.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.type_url!=null&&Object.hasOwnProperty.call(message,"type_url"))writer.uint32(10).string(message.type_url);if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(18).bytes(message.value);return writer};Any.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Any.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Any;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.type_url=reader.string();break}case 2:{message.value=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};Any.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Any.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.type_url!=null&&message.hasOwnProperty("type_url"))if(!$util.isString(message.type_url))return"type_url: string expected";if(message.value!=null&&message.hasOwnProperty("value"))if(!(message.value&&typeof message.value.length==="number"||$util.isString(message.value)))return"value: buffer expected";return null};Any.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Any)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Any;if(object.type_url!=null)message.type_url=String(object.type_url);if(object.value!=null)if(typeof object.value==="string")$util.base64.decode(object.value,message.value=$util.newBuffer($util.base64.length(object.value)),0);else if(object.value.length>=0)message.value=object.value;return message};Any.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.type_url="";if(options.bytes===String)object.value="";else{object.value=[];if(options.bytes!==Array)object.value=$util.newBuffer(object.value)}}if(message.type_url!=null&&message.hasOwnProperty("type_url"))object.type_url=message.type_url;if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.bytes===String?$util.base64.encode(message.value,0,message.value.length):options.bytes===Array?Array.prototype.slice.call(message.value):message.value;return object};Any.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Any.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Any"};return Any}();protobuf.DoubleValue=function(){function DoubleValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}DoubleValue.prototype.value=0;DoubleValue.create=function create(properties){return new DoubleValue(properties)};DoubleValue.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(9).double(message.value);return writer};DoubleValue.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};DoubleValue.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DoubleValue;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.double();break}default:reader.skipType(tag&7,long);break}}return message};DoubleValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DoubleValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value!=="number")return"value: number expected";return null};DoubleValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DoubleValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DoubleValue;if(object.value!=null)message.value=Number(object.value);return message};DoubleValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.json&&!isFinite(message.value)?String(message.value):message.value;return object};DoubleValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DoubleValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DoubleValue"};return DoubleValue}();protobuf.FloatValue=function(){function FloatValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FloatValue.prototype.value=0;FloatValue.create=function create(properties){return new FloatValue(properties)};FloatValue.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(13).float(message.value);return writer};FloatValue.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FloatValue.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FloatValue;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.float();break}default:reader.skipType(tag&7,long);break}}return message};FloatValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FloatValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value!=="number")return"value: number expected";return null};FloatValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FloatValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FloatValue;if(object.value!=null)message.value=Number(object.value);return message};FloatValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.json&&!isFinite(message.value)?String(message.value):message.value;return object};FloatValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FloatValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FloatValue"};return FloatValue}();protobuf.Int64Value=function(){function Int64Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Int64Value.prototype.value=$util.Long?$util.Long.fromBits(0,0,false):0;Int64Value.create=function create(properties){return new Int64Value(properties)};Int64Value.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(8).int64(message.value);return writer};Int64Value.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Int64Value.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Int64Value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.int64();break}default:reader.skipType(tag&7,long);break}}return message};Int64Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Int64Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value)&&!(message.value&&$util.isInteger(message.value.low)&&$util.isInteger(message.value.high)))return"value: integer|Long expected";return null};Int64Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Int64Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Int64Value;if(object.value!=null)if($util.Long)(message.value=$util.Long.fromValue(object.value)).unsigned=false;else if(typeof object.value==="string")message.value=parseInt(object.value,10);else if(typeof object.value==="number")message.value=object.value;else if(typeof object.value==="object")message.value=new $util.LongBits(object.value.low>>>0,object.value.high>>>0).toNumber();return message};Int64Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if($util.Long){var long=new $util.Long(0,0,false);object.value=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.value=options.longs===String?"0":0;if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value==="number")object.value=options.longs===String?String(message.value):message.value;else object.value=options.longs===String?$util.Long.prototype.toString.call(message.value):options.longs===Number?new $util.LongBits(message.value.low>>>0,message.value.high>>>0).toNumber():message.value;return object};Int64Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Int64Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Int64Value"};return Int64Value}();protobuf.UInt64Value=function(){function UInt64Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}UInt64Value.prototype.value=$util.Long?$util.Long.fromBits(0,0,true):0;UInt64Value.create=function create(properties){return new UInt64Value(properties)};UInt64Value.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(8).uint64(message.value);return writer};UInt64Value.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};UInt64Value.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UInt64Value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.uint64();break}default:reader.skipType(tag&7,long);break}}return message};UInt64Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UInt64Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value)&&!(message.value&&$util.isInteger(message.value.low)&&$util.isInteger(message.value.high)))return"value: integer|Long expected";return null};UInt64Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UInt64Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UInt64Value;if(object.value!=null)if($util.Long)(message.value=$util.Long.fromValue(object.value)).unsigned=true;else if(typeof object.value==="string")message.value=parseInt(object.value,10);else if(typeof object.value==="number")message.value=object.value;else if(typeof object.value==="object")message.value=new $util.LongBits(object.value.low>>>0,object.value.high>>>0).toNumber(true);return message};UInt64Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if($util.Long){var long=new $util.Long(0,0,true);object.value=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.value=options.longs===String?"0":0;if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value==="number")object.value=options.longs===String?String(message.value):message.value;else object.value=options.longs===String?$util.Long.prototype.toString.call(message.value):options.longs===Number?new $util.LongBits(message.value.low>>>0,message.value.high>>>0).toNumber(true):message.value;return object};UInt64Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UInt64Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UInt64Value"};return UInt64Value}();protobuf.Int32Value=function(){function Int32Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Int32Value.prototype.value=0;Int32Value.create=function create(properties){return new Int32Value(properties)};Int32Value.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(8).int32(message.value);return writer};Int32Value.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Int32Value.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Int32Value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Int32Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Int32Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value))return"value: integer expected";return null};Int32Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Int32Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Int32Value;if(object.value!=null)message.value=object.value|0;return message};Int32Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};Int32Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Int32Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Int32Value"};return Int32Value}();protobuf.UInt32Value=function(){function UInt32Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}UInt32Value.prototype.value=0;UInt32Value.create=function create(properties){return new UInt32Value(properties)};UInt32Value.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(8).uint32(message.value);return writer};UInt32Value.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};UInt32Value.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UInt32Value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.uint32();break}default:reader.skipType(tag&7,long);break}}return message};UInt32Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UInt32Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value))return"value: integer expected";return null};UInt32Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UInt32Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UInt32Value;if(object.value!=null)message.value=object.value>>>0;return message};UInt32Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};UInt32Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UInt32Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UInt32Value"};return UInt32Value}();protobuf.BoolValue=function(){function BoolValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}BoolValue.prototype.value=false;BoolValue.create=function create(properties){return new BoolValue(properties)};BoolValue.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(8).bool(message.value);return writer};BoolValue.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};BoolValue.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.BoolValue;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};BoolValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BoolValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value!=="boolean")return"value: boolean expected";return null};BoolValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.BoolValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.BoolValue;if(object.value!=null)message.value=Boolean(object.value);return message};BoolValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=false;if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};BoolValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BoolValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.BoolValue"};return BoolValue}();protobuf.StringValue=function(){function StringValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}StringValue.prototype.value="";StringValue.create=function create(properties){return new StringValue(properties)};StringValue.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(10).string(message.value);return writer};StringValue.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};StringValue.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.StringValue;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};StringValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StringValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isString(message.value))return"value: string expected";return null};StringValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.StringValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.StringValue;if(object.value!=null)message.value=String(object.value);return message};StringValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value="";if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};StringValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};StringValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.StringValue"};return StringValue}();protobuf.BytesValue=function(){function BytesValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}BytesValue.prototype.value=$util.newBuffer([]);BytesValue.create=function create(properties){return new BytesValue(properties)};BytesValue.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(10).bytes(message.value);return writer};BytesValue.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};BytesValue.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.BytesValue;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};BytesValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BytesValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!(message.value&&typeof message.value.length==="number"||$util.isString(message.value)))return"value: buffer expected";return null};BytesValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.BytesValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.BytesValue;if(object.value!=null)if(typeof object.value==="string")$util.base64.decode(object.value,message.value=$util.newBuffer($util.base64.length(object.value)),0);else if(object.value.length>=0)message.value=object.value;return message};BytesValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if(options.bytes===String)object.value="";else{object.value=[];if(options.bytes!==Array)object.value=$util.newBuffer(object.value)}if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.bytes===String?$util.base64.encode(message.value,0,message.value.length):options.bytes===Array?Array.prototype.slice.call(message.value):message.value;return object};BytesValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BytesValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.BytesValue"};return BytesValue}();protobuf.Struct=function(){function Struct(properties){this.fields={};if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Struct.prototype.fields=$util.emptyObject;Struct.create=function create(properties){return new Struct(properties)};Struct.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.fields!=null&&Object.hasOwnProperty.call(message,"fields"))for(var keys=Object.keys(message.fields),i=0;i<keys.length;++i){writer.uint32(10).fork().uint32(10).string(keys[i]);$root.google.protobuf.Value.encode(message.fields[keys[i]],writer.uint32(18).fork()).ldelim().ldelim()}return writer};Struct.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Struct.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Struct,key,value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(message.fields===$util.emptyObject)message.fields={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos<end2){var tag2=reader.uint32();switch(tag2>>>3){case 1:key=reader.string();break;case 2:value=$root.google.protobuf.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.fields,key);message.fields[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};Struct.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Struct.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!$util.isObject(message.fields))return"fields: object expected";var key=Object.keys(message.fields);for(var i=0;i<key.length;++i){var error=$root.google.protobuf.Value.verify(message.fields[key[i]],long+1);if(error)return"fields."+error}}return null};Struct.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Struct)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Struct;if(object.fields){if(typeof object.fields!=="object")throw TypeError(".google.protobuf.Struct.fields: object expected");message.fields={};for(var keys=Object.keys(object.fields),i=0;i<keys.length;++i){if(keys[i]==="__proto__")$util.makeProp(message.fields,keys[i]);if(typeof object.fields[keys[i]]!=="object")throw TypeError(".google.protobuf.Struct.fields: object expected");message.fields[keys[i]]=$root.google.protobuf.Value.fromObject(object.fields[keys[i]],long+1)}}return message};Struct.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.objects||options.defaults)object.fields={};var keys2;if(message.fields&&(keys2=Object.keys(message.fields)).length){object.fields={};for(var j=0;j<keys2.length;++j){if(keys2[j]==="__proto__")$util.makeProp(object.fields,keys2[j]);object.fields[keys2[j]]=$root.google.protobuf.Value.toObject(message.fields[keys2[j]],options)}}return object};Struct.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Struct.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Struct"};return Struct}();protobuf.Value=function(){function Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Value.prototype.nullValue=null;Value.prototype.numberValue=null;Value.prototype.stringValue=null;Value.prototype.boolValue=null;Value.prototype.structValue=null;Value.prototype.listValue=null;var $oneOfFields;Object.defineProperty(Value.prototype,"kind",{get:$util.oneOfGetter($oneOfFields=["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]),set:$util.oneOfSetter($oneOfFields)});Value.create=function create(properties){return new Value(properties)};Value.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.nullValue!=null&&Object.hasOwnProperty.call(message,"nullValue"))writer.uint32(8).int32(message.nullValue);if(message.numberValue!=null&&Object.hasOwnProperty.call(message,"numberValue"))writer.uint32(17).double(message.numberValue);if(message.stringValue!=null&&Object.hasOwnProperty.call(message,"stringValue"))writer.uint32(26).string(message.stringValue);if(message.boolValue!=null&&Object.hasOwnProperty.call(message,"boolValue"))writer.uint32(32).bool(message.boolValue);if(message.structValue!=null&&Object.hasOwnProperty.call(message,"structValue"))$root.google.protobuf.Struct.encode(message.structValue,writer.uint32(42).fork()).ldelim();if(message.listValue!=null&&Object.hasOwnProperty.call(message,"listValue"))$root.google.protobuf.ListValue.encode(message.listValue,writer.uint32(50).fork()).ldelim();return writer};Value.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Value.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.nullValue=reader.int32();break}case 2:{message.numberValue=reader.double();break}case 3:{message.stringValue=reader.string();break}case 4:{message.boolValue=reader.bool();break}case 5:{message.structValue=$root.google.protobuf.Struct.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.listValue=$root.google.protobuf.ListValue.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){properties.kind=1;switch(message.nullValue){default:return"nullValue: enum value expected";case 0:break}}if(message.numberValue!=null&&message.hasOwnProperty("numberValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;if(typeof message.numberValue!=="number")return"numberValue: number expected"}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;if(!$util.isString(message.stringValue))return"stringValue: string expected"}if(message.boolValue!=null&&message.hasOwnProperty("boolValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;if(typeof message.boolValue!=="boolean")return"boolValue: boolean expected"}if(message.structValue!=null&&message.hasOwnProperty("structValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;{var error=$root.google.protobuf.Struct.verify(message.structValue,long+1);if(error)return"structValue."+error}}if(message.listValue!=null&&message.hasOwnProperty("listValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;{var error=$root.google.protobuf.ListValue.verify(message.listValue,long+1);if(error)return"listValue."+error}}return null};Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Value;switch(object.nullValue){default:if(typeof object.nullValue==="number"){message.nullValue=object.nullValue;break}break;case"NULL_VALUE":case 0:message.nullValue=0;break}if(object.numberValue!=null)message.numberValue=Number(object.numberValue);if(object.stringValue!=null)message.stringValue=String(object.stringValue);if(object.boolValue!=null)message.boolValue=Boolean(object.boolValue);if(object.structValue!=null){if(typeof object.structValue!=="object")throw TypeError(".google.protobuf.Value.structValue: object expected");message.structValue=$root.google.protobuf.Struct.fromObject(object.structValue,long+1)}if(object.listValue!=null){if(typeof object.listValue!=="object")throw TypeError(".google.protobuf.Value.listValue: object expected");message.listValue=$root.google.protobuf.ListValue.fromObject(object.listValue,long+1)}return message};Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){object.nullValue=options.enums===String?$root.google.protobuf.NullValue[message.nullValue]===undefined?message.nullValue:$root.google.protobuf.NullValue[message.nullValue]:message.nullValue;if(options.oneofs)object.kind="nullValue"}if(message.numberValue!=null&&message.hasOwnProperty("numberValue")){object.numberValue=options.json&&!isFinite(message.numberValue)?String(message.numberValue):message.numberValue;if(options.oneofs)object.kind="numberValue"}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){object.stringValue=message.stringValue;if(options.oneofs)object.kind="stringValue"}if(message.boolValue!=null&&message.hasOwnProperty("boolValue")){object.boolValue=message.boolValue;if(options.oneofs)object.kind="boolValue"}if(message.structValue!=null&&message.hasOwnProperty("structValue")){object.structValue=$root.google.protobuf.Struct.toObject(message.structValue,options);if(options.oneofs)object.kind="structValue"}if(message.listValue!=null&&message.hasOwnProperty("listValue")){object.listValue=$root.google.protobuf.ListValue.toObject(message.listValue,options);if(options.oneofs)object.kind="listValue"}return object};Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Value"};return Value}();protobuf.NullValue=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="NULL_VALUE"]=0;return values}();protobuf.ListValue=function(){function ListValue(properties){this.values=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ListValue.prototype.values=$util.emptyArray;ListValue.create=function create(properties){return new ListValue(properties)};ListValue.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.values!=null&&message.values.length)for(var i=0;i<message.values.length;++i)$root.google.protobuf.Value.encode(message.values[i],writer.uint32(10).fork()).ldelim();return writer};ListValue.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ListValue.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ListValue;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.values&&message.values.length))message.values=[];message.values.push($root.google.protobuf.Value.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};ListValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.values!=null&&message.hasOwnProperty("values")){if(!Array.isArray(message.values))return"values: array expected";for(var i=0;i<message.values.length;++i){var error=$root.google.protobuf.Value.verify(message.values[i],long+1);if(error)return"values."+error}}return null};ListValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.ListValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ListValue;if(object.values){if(!Array.isArray(object.values))throw TypeError(".google.protobuf.ListValue.values: array expected");message.values=[];for(var i=0;i<object.values.length;++i){if(typeof object.values[i]!=="object")throw TypeError(".google.protobuf.ListValue.values: object expected");message.values[i]=$root.google.protobuf.Value.fromObject(object.values[i],long+1)}}return message};ListValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.values=[];if(message.values&&message.values.length){object.values=[];for(var j=0;j<message.values.length;++j)object.values[j]=$root.google.protobuf.Value.toObject(message.values[j],options)}return object};ListValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.ListValue"};return ListValue}();protobuf.FileDescriptorSet=function(){function FileDescriptorSet(properties){this.file=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FileDescriptorSet.prototype.file=$util.emptyArray;FileDescriptorSet.create=function create(properties){return new FileDescriptorSet(properties)};FileDescriptorSet.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.file!=null&&message.file.length)for(var i=0;i<message.file.length;++i)$root.google.protobuf.FileDescriptorProto.encode(message.file[i],writer.uint32(10).fork()).ldelim();return writer};FileDescriptorSet.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FileDescriptorSet.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FileDescriptorSet;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.file&&message.file.length))message.file=[];message.file.push($root.google.protobuf.FileDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};FileDescriptorSet.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FileDescriptorSet.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.file!=null&&message.hasOwnProperty("file")){if(!Array.isArray(message.file))return"file: array expected";for(var i=0;i<message.file.length;++i){var error=$root.google.protobuf.FileDescriptorProto.verify(message.file[i],long+1);if(error)return"file."+error}}return null};FileDescriptorSet.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FileDescriptorSet)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FileDescriptorSet;if(object.file){if(!Array.isArray(object.file))throw TypeError(".google.protobuf.FileDescriptorSet.file: array expected");message.file=[];for(var i=0;i<object.file.length;++i){if(typeof object.file[i]!=="object")throw TypeError(".google.protobuf.FileDescriptorSet.file: object expected");message.file[i]=$root.google.protobuf.FileDescriptorProto.fromObject(object.file[i],long+1)}}return message};FileDescriptorSet.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.file=[];if(message.file&&message.file.length){object.file=[];for(var j=0;j<message.file.length;++j)object.file[j]=$root.google.protobuf.FileDescriptorProto.toObject(message.file[j],options)}return object};FileDescriptorSet.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FileDescriptorSet.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FileDescriptorSet"};return FileDescriptorSet}();protobuf.Edition=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="EDITION_UNKNOWN"]=0;values[valuesById[900]="EDITION_LEGACY"]=900;values[valuesById[998]="EDITION_PROTO2"]=998;values[valuesById[999]="EDITION_PROTO3"]=999;values[valuesById[1e3]="EDITION_2023"]=1e3;values[valuesById[1001]="EDITION_2024"]=1001;values[valuesById[1002]="EDITION_2026"]=1002;values[valuesById[9999]="EDITION_UNSTABLE"]=9999;values[valuesById[1]="EDITION_1_TEST_ONLY"]=1;values[valuesById[2]="EDITION_2_TEST_ONLY"]=2;values[valuesById[99997]="EDITION_99997_TEST_ONLY"]=99997;values[valuesById[99998]="EDITION_99998_TEST_ONLY"]=99998;values[valuesById[99999]="EDITION_99999_TEST_ONLY"]=99999;values[valuesById[2147483647]="EDITION_MAX"]=2147483647;return values}();protobuf.FileDescriptorProto=function(){function FileDescriptorProto(properties){this.dependency=[];this.publicDependency=[];this.weakDependency=[];this.optionDependency=[];this.messageType=[];this.enumType=[];this.service=[];this.extension=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FileDescriptorProto.prototype.name="";FileDescriptorProto.prototype["package"]="";FileDescriptorProto.prototype.dependency=$util.emptyArray;FileDescriptorProto.prototype.publicDependency=$util.emptyArray;FileDescriptorProto.prototype.weakDependency=$util.emptyArray;FileDescriptorProto.prototype.optionDependency=$util.emptyArray;FileDescriptorProto.prototype.messageType=$util.emptyArray;FileDescriptorProto.prototype.enumType=$util.emptyArray;FileDescriptorProto.prototype.service=$util.emptyArray;FileDescriptorProto.prototype.extension=$util.emptyArray;FileDescriptorProto.prototype.options=null;FileDescriptorProto.prototype.sourceCodeInfo=null;FileDescriptorProto.prototype.syntax="";FileDescriptorProto.prototype.edition=0;FileDescriptorProto.create=function create(properties){return new FileDescriptorProto(properties)};FileDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message["package"]!=null&&Object.hasOwnProperty.call(message,"package"))writer.uint32(18).string(message["package"]);if(message.dependency!=null&&message.dependency.length)for(var i=0;i<message.dependency.length;++i)writer.uint32(26).string(message.dependency[i]);if(message.messageType!=null&&message.messageType.length)for(var i=0;i<message.messageType.length;++i)$root.google.protobuf.DescriptorProto.encode(message.messageType[i],writer.uint32(34).fork()).ldelim();if(message.enumType!=null&&message.enumType.length)for(var i=0;i<message.enumType.length;++i)$root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i],writer.uint32(42).fork()).ldelim();if(message.service!=null&&message.service.length)for(var i=0;i<message.service.length;++i)$root.google.protobuf.ServiceDescriptorProto.encode(message.service[i],writer.uint32(50).fork()).ldelim();if(message.extension!=null&&message.extension.length)for(var i=0;i<message.extension.length;++i)$root.google.protobuf.FieldDescriptorProto.encode(message.extension[i],writer.uint32(58).fork()).ldelim();if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.FileOptions.encode(message.options,writer.uint32(66).fork()).ldelim();if(message.sourceCodeInfo!=null&&Object.hasOwnProperty.call(message,"sourceCodeInfo"))$root.google.protobuf.SourceCodeInfo.encode(message.sourceCodeInfo,writer.uint32(74).fork()).ldelim();if(message.publicDependency!=null&&message.publicDependency.length)for(var i=0;i<message.publicDependency.length;++i)writer.uint32(80).int32(message.publicDependency[i]);if(message.weakDependency!=null&&message.weakDependency.length)for(var i=0;i<message.weakDependency.length;++i)writer.uint32(88).int32(message.weakDependency[i]);if(message.syntax!=null&&Object.hasOwnProperty.call(message,"syntax"))writer.uint32(98).string(message.syntax);if(message.edition!=null&&Object.hasOwnProperty.call(message,"edition"))writer.uint32(112).int32(message.edition);if(message.optionDependency!=null&&message.optionDependency.length)for(var i=0;i<message.optionDependency.length;++i)writer.uint32(122).string(message.optionDependency[i]);return writer};FileDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FileDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FileDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{message["package"]=reader.string();break}case 3:{if(!(message.dependency&&message.dependency.length))message.dependency=[];message.dependency.push(reader.string());break}case 10:{if(!(message.publicDependency&&message.publicDependency.length))message.publicDependency=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.publicDependency.push(reader.int32())}else message.publicDependency.push(reader.int32());break}case 11:{if(!(message.weakDependency&&message.weakDependency.length))message.weakDependency=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.weakDependency.push(reader.int32())}else message.weakDependency.push(reader.int32());break}case 15:{if(!(message.optionDependency&&message.optionDependency.length))message.optionDependency=[];message.optionDependency.push(reader.string());break}case 4:{if(!(message.messageType&&message.messageType.length))message.messageType=[];message.messageType.push($root.google.protobuf.DescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{if(!(message.enumType&&message.enumType.length))message.enumType=[];message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 6:{if(!(message.service&&message.service.length))message.service=[];message.service.push($root.google.protobuf.ServiceDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 7:{if(!(message.extension&&message.extension.length))message.extension=[];message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 8:{message.options=$root.google.protobuf.FileOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.sourceCodeInfo=$root.google.protobuf.SourceCodeInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 12:{message.syntax=reader.string();break}case 14:{message.edition=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FileDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FileDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message["package"]!=null&&message.hasOwnProperty("package"))if(!$util.isString(message["package"]))return"package: string expected";if(message.dependency!=null&&message.hasOwnProperty("dependency")){if(!Array.isArray(message.dependency))return"dependency: array expected";for(var i=0;i<message.dependency.length;++i)if(!$util.isString(message.dependency[i]))return"dependency: string[] expected"}if(message.publicDependency!=null&&message.hasOwnProperty("publicDependency")){if(!Array.isArray(message.publicDependency))return"publicDependency: array expected";for(var i=0;i<message.publicDependency.length;++i)if(!$util.isInteger(message.publicDependency[i]))return"publicDependency: integer[] expected"}if(message.weakDependency!=null&&message.hasOwnProperty("weakDependency")){if(!Array.isArray(message.weakDependency))return"weakDependency: array expected";for(var i=0;i<message.weakDependency.length;++i)if(!$util.isInteger(message.weakDependency[i]))return"weakDependency: integer[] expected"}if(message.optionDependency!=null&&message.hasOwnProperty("optionDependency")){if(!Array.isArray(message.optionDependency))return"optionDependency: array expected";for(var i=0;i<message.optionDependency.length;++i)if(!$util.isString(message.optionDependency[i]))return"optionDependency: string[] expected"}if(message.messageType!=null&&message.hasOwnProperty("messageType")){if(!Array.isArray(message.messageType))return"messageType: array expected";for(var i=0;i<message.messageType.length;++i){var error=$root.google.protobuf.DescriptorProto.verify(message.messageType[i],long+1);if(error)return"messageType."+error}}if(message.enumType!=null&&message.hasOwnProperty("enumType")){if(!Array.isArray(message.enumType))return"enumType: array expected";for(var i=0;i<message.enumType.length;++i){var error=$root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i],long+1);if(error)return"enumType."+error}}if(message.service!=null&&message.hasOwnProperty("service")){if(!Array.isArray(message.service))return"service: array expected";for(var i=0;i<message.service.length;++i){var error=$root.google.protobuf.ServiceDescriptorProto.verify(message.service[i],long+1);if(error)return"service."+error}}if(message.extension!=null&&message.hasOwnProperty("extension")){if(!Array.isArray(message.extension))return"extension: array expected";for(var i=0;i<message.extension.length;++i){var error=$root.google.protobuf.FieldDescriptorProto.verify(message.extension[i],long+1);if(error)return"extension."+error}}if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.FileOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.sourceCodeInfo!=null&&message.hasOwnProperty("sourceCodeInfo")){var error=$root.google.protobuf.SourceCodeInfo.verify(message.sourceCodeInfo,long+1);if(error)return"sourceCodeInfo."+error}if(message.syntax!=null&&message.hasOwnProperty("syntax"))if(!$util.isString(message.syntax))return"syntax: string expected";if(message.edition!=null&&message.hasOwnProperty("edition"))switch(message.edition){default:return"edition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}return null};FileDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FileDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FileDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object["package"]!=null)message["package"]=String(object["package"]);if(object.dependency){if(!Array.isArray(object.dependency))throw TypeError(".google.protobuf.FileDescriptorProto.dependency: array expected");message.dependency=[];for(var i=0;i<object.dependency.length;++i)message.dependency[i]=String(object.dependency[i])}if(object.publicDependency){if(!Array.isArray(object.publicDependency))throw TypeError(".google.protobuf.FileDescriptorProto.publicDependency: array expected");message.publicDependency=[];for(var i=0;i<object.publicDependency.length;++i)message.publicDependency[i]=object.publicDependency[i]|0}if(object.weakDependency){if(!Array.isArray(object.weakDependency))throw TypeError(".google.protobuf.FileDescriptorProto.weakDependency: array expected");message.weakDependency=[];for(var i=0;i<object.weakDependency.length;++i)message.weakDependency[i]=object.weakDependency[i]|0}if(object.optionDependency){if(!Array.isArray(object.optionDependency))throw TypeError(".google.protobuf.FileDescriptorProto.optionDependency: array expected");message.optionDependency=[];for(var i=0;i<object.optionDependency.length;++i)message.optionDependency[i]=String(object.optionDependency[i])}if(object.messageType){if(!Array.isArray(object.messageType))throw TypeError(".google.protobuf.FileDescriptorProto.messageType: array expected");message.messageType=[];for(var i=0;i<object.messageType.length;++i){if(typeof object.messageType[i]!=="object")throw TypeError(".google.protobuf.FileDescriptorProto.messageType: object expected");message.messageType[i]=$root.google.protobuf.DescriptorProto.fromObject(object.messageType[i],long+1)}}if(object.enumType){if(!Array.isArray(object.enumType))throw TypeError(".google.protobuf.FileDescriptorProto.enumType: array expected");message.enumType=[];for(var i=0;i<object.enumType.length;++i){if(typeof object.enumType[i]!=="object")throw TypeError(".google.protobuf.FileDescriptorProto.enumType: object expected");message.enumType[i]=$root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i],long+1)}}if(object.service){if(!Array.isArray(object.service))throw TypeError(".google.protobuf.FileDescriptorProto.service: array expected");message.service=[];for(var i=0;i<object.service.length;++i){if(typeof object.service[i]!=="object")throw TypeError(".google.protobuf.FileDescriptorProto.service: object expected");message.service[i]=$root.google.protobuf.ServiceDescriptorProto.fromObject(object.service[i],long+1)}}if(object.extension){if(!Array.isArray(object.extension))throw TypeError(".google.protobuf.FileDescriptorProto.extension: array expected");message.extension=[];for(var i=0;i<object.extension.length;++i){if(typeof object.extension[i]!=="object")throw TypeError(".google.protobuf.FileDescriptorProto.extension: object expected");message.extension[i]=$root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i],long+1)}}if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.FileDescriptorProto.options: object expected");message.options=$root.google.protobuf.FileOptions.fromObject(object.options,long+1)}if(object.sourceCodeInfo!=null){if(typeof object.sourceCodeInfo!=="object")throw TypeError(".google.protobuf.FileDescriptorProto.sourceCodeInfo: object expected");message.sourceCodeInfo=$root.google.protobuf.SourceCodeInfo.fromObject(object.sourceCodeInfo,long+1)}if(object.syntax!=null)message.syntax=String(object.syntax);switch(object.edition){default:if(typeof object.edition==="number"){message.edition=object.edition;break}break;case"EDITION_UNKNOWN":case 0:message.edition=0;break;case"EDITION_LEGACY":case 900:message.edition=900;break;case"EDITION_PROTO2":case 998:message.edition=998;break;case"EDITION_PROTO3":case 999:message.edition=999;break;case"EDITION_2023":case 1e3:message.edition=1e3;break;case"EDITION_2024":case 1001:message.edition=1001;break;case"EDITION_2026":case 1002:message.edition=1002;break;case"EDITION_UNSTABLE":case 9999:message.edition=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.edition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.edition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.edition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.edition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.edition=99999;break;case"EDITION_MAX":case 2147483647:message.edition=2147483647;break}return message};FileDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.dependency=[];object.messageType=[];object.enumType=[];object.service=[];object.extension=[];object.publicDependency=[];object.weakDependency=[];object.optionDependency=[]}if(options.defaults){object.name="";object["package"]="";object.options=null;object.sourceCodeInfo=null;object.syntax="";object.edition=options.enums===String?"EDITION_UNKNOWN":0}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message["package"]!=null&&message.hasOwnProperty("package"))object["package"]=message["package"];if(message.dependency&&message.dependency.length){object.dependency=[];for(var j=0;j<message.dependency.length;++j)object.dependency[j]=message.dependency[j]}if(message.messageType&&message.messageType.length){object.messageType=[];for(var j=0;j<message.messageType.length;++j)object.messageType[j]=$root.google.protobuf.DescriptorProto.toObject(message.messageType[j],options)}if(message.enumType&&message.enumType.length){object.enumType=[];for(var j=0;j<message.enumType.length;++j)object.enumType[j]=$root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j],options)}if(message.service&&message.service.length){object.service=[];for(var j=0;j<message.service.length;++j)object.service[j]=$root.google.protobuf.ServiceDescriptorProto.toObject(message.service[j],options)}if(message.extension&&message.extension.length){object.extension=[];for(var j=0;j<message.extension.length;++j)object.extension[j]=$root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j],options)}if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.FileOptions.toObject(message.options,options);if(message.sourceCodeInfo!=null&&message.hasOwnProperty("sourceCodeInfo"))object.sourceCodeInfo=$root.google.protobuf.SourceCodeInfo.toObject(message.sourceCodeInfo,options);if(message.publicDependency&&message.publicDependency.length){object.publicDependency=[];for(var j=0;j<message.publicDependency.length;++j)object.publicDependency[j]=message.publicDependency[j]}if(message.weakDependency&&message.weakDependency.length){object.weakDependency=[];for(var j=0;j<message.weakDependency.length;++j)object.weakDependency[j]=message.weakDependency[j]}if(message.syntax!=null&&message.hasOwnProperty("syntax"))object.syntax=message.syntax;if(message.edition!=null&&message.hasOwnProperty("edition"))object.edition=options.enums===String?$root.google.protobuf.Edition[message.edition]===undefined?message.edition:$root.google.protobuf.Edition[message.edition]:message.edition;if(message.optionDependency&&message.optionDependency.length){object.optionDependency=[];for(var j=0;j<message.optionDependency.length;++j)object.optionDependency[j]=message.optionDependency[j]}return object};FileDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FileDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FileDescriptorProto"};return FileDescriptorProto}();protobuf.DescriptorProto=function(){function DescriptorProto(properties){this.field=[];this.extension=[];this.nestedType=[];this.enumType=[];this.extensionRange=[];this.oneofDecl=[];this.reservedRange=[];this.reservedName=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}DescriptorProto.prototype.name="";DescriptorProto.prototype.field=$util.emptyArray;DescriptorProto.prototype.extension=$util.emptyArray;DescriptorProto.prototype.nestedType=$util.emptyArray;DescriptorProto.prototype.enumType=$util.emptyArray;DescriptorProto.prototype.extensionRange=$util.emptyArray;DescriptorProto.prototype.oneofDecl=$util.emptyArray;DescriptorProto.prototype.options=null;DescriptorProto.prototype.reservedRange=$util.emptyArray;DescriptorProto.prototype.reservedName=$util.emptyArray;DescriptorProto.prototype.visibility=0;DescriptorProto.create=function create(properties){return new DescriptorProto(properties)};DescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.field!=null&&message.field.length)for(var i=0;i<message.field.length;++i)$root.google.protobuf.FieldDescriptorProto.encode(message.field[i],writer.uint32(18).fork()).ldelim();if(message.nestedType!=null&&message.nestedType.length)for(var i=0;i<message.nestedType.length;++i)$root.google.protobuf.DescriptorProto.encode(message.nestedType[i],writer.uint32(26).fork()).ldelim();if(message.enumType!=null&&message.enumType.length)for(var i=0;i<message.enumType.length;++i)$root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i],writer.uint32(34).fork()).ldelim();if(message.extensionRange!=null&&message.extensionRange.length)for(var i=0;i<message.extensionRange.length;++i)$root.google.protobuf.DescriptorProto.ExtensionRange.encode(message.extensionRange[i],writer.uint32(42).fork()).ldelim();if(message.extension!=null&&message.extension.length)for(var i=0;i<message.extension.length;++i)$root.google.protobuf.FieldDescriptorProto.encode(message.extension[i],writer.uint32(50).fork()).ldelim();if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.MessageOptions.encode(message.options,writer.uint32(58).fork()).ldelim();if(message.oneofDecl!=null&&message.oneofDecl.length)for(var i=0;i<message.oneofDecl.length;++i)$root.google.protobuf.OneofDescriptorProto.encode(message.oneofDecl[i],writer.uint32(66).fork()).ldelim();if(message.reservedRange!=null&&message.reservedRange.length)for(var i=0;i<message.reservedRange.length;++i)$root.google.protobuf.DescriptorProto.ReservedRange.encode(message.reservedRange[i],writer.uint32(74).fork()).ldelim();if(message.reservedName!=null&&message.reservedName.length)for(var i=0;i<message.reservedName.length;++i)writer.uint32(82).string(message.reservedName[i]);if(message.visibility!=null&&Object.hasOwnProperty.call(message,"visibility"))writer.uint32(88).int32(message.visibility);return writer};DescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};DescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.field&&message.field.length))message.field=[];message.field.push($root.google.protobuf.FieldDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 6:{if(!(message.extension&&message.extension.length))message.extension=[];message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(!(message.nestedType&&message.nestedType.length))message.nestedType=[];message.nestedType.push($root.google.protobuf.DescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{if(!(message.enumType&&message.enumType.length))message.enumType=[];message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{if(!(message.extensionRange&&message.extensionRange.length))message.extensionRange=[];message.extensionRange.push($root.google.protobuf.DescriptorProto.ExtensionRange.decode(reader,reader.uint32(),undefined,long+1));break}case 8:{if(!(message.oneofDecl&&message.oneofDecl.length))message.oneofDecl=[];message.oneofDecl.push($root.google.protobuf.OneofDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 7:{message.options=$root.google.protobuf.MessageOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{if(!(message.reservedRange&&message.reservedRange.length))message.reservedRange=[];message.reservedRange.push($root.google.protobuf.DescriptorProto.ReservedRange.decode(reader,reader.uint32(),undefined,long+1));break}case 10:{if(!(message.reservedName&&message.reservedName.length))message.reservedName=[];message.reservedName.push(reader.string());break}case 11:{message.visibility=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};DescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.field!=null&&message.hasOwnProperty("field")){if(!Array.isArray(message.field))return"field: array expected";for(var i=0;i<message.field.length;++i){var error=$root.google.protobuf.FieldDescriptorProto.verify(message.field[i],long+1);if(error)return"field."+error}}if(message.extension!=null&&message.hasOwnProperty("extension")){if(!Array.isArray(message.extension))return"extension: array expected";for(var i=0;i<message.extension.length;++i){var error=$root.google.protobuf.FieldDescriptorProto.verify(message.extension[i],long+1);if(error)return"extension."+error}}if(message.nestedType!=null&&message.hasOwnProperty("nestedType")){if(!Array.isArray(message.nestedType))return"nestedType: array expected";for(var i=0;i<message.nestedType.length;++i){var error=$root.google.protobuf.DescriptorProto.verify(message.nestedType[i],long+1);if(error)return"nestedType."+error}}if(message.enumType!=null&&message.hasOwnProperty("enumType")){if(!Array.isArray(message.enumType))return"enumType: array expected";for(var i=0;i<message.enumType.length;++i){var error=$root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i],long+1);if(error)return"enumType."+error}}if(message.extensionRange!=null&&message.hasOwnProperty("extensionRange")){if(!Array.isArray(message.extensionRange))return"extensionRange: array expected";for(var i=0;i<message.extensionRange.length;++i){var error=$root.google.protobuf.DescriptorProto.ExtensionRange.verify(message.extensionRange[i],long+1);if(error)return"extensionRange."+error}}if(message.oneofDecl!=null&&message.hasOwnProperty("oneofDecl")){if(!Array.isArray(message.oneofDecl))return"oneofDecl: array expected";for(var i=0;i<message.oneofDecl.length;++i){var error=$root.google.protobuf.OneofDescriptorProto.verify(message.oneofDecl[i],long+1);if(error)return"oneofDecl."+error}}if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.MessageOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.reservedRange!=null&&message.hasOwnProperty("reservedRange")){if(!Array.isArray(message.reservedRange))return"reservedRange: array expected";for(var i=0;i<message.reservedRange.length;++i){var error=$root.google.protobuf.DescriptorProto.ReservedRange.verify(message.reservedRange[i],long+1);if(error)return"reservedRange."+error}}if(message.reservedName!=null&&message.hasOwnProperty("reservedName")){if(!Array.isArray(message.reservedName))return"reservedName: array expected";for(var i=0;i<message.reservedName.length;++i)if(!$util.isString(message.reservedName[i]))return"reservedName: string[] expected"}if(message.visibility!=null&&message.hasOwnProperty("visibility"))switch(message.visibility){default:return"visibility: enum value expected";case 0:case 1:case 2:break}return null};DescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.field){if(!Array.isArray(object.field))throw TypeError(".google.protobuf.DescriptorProto.field: array expected");message.field=[];for(var i=0;i<object.field.length;++i){if(typeof object.field[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.field: object expected");message.field[i]=$root.google.protobuf.FieldDescriptorProto.fromObject(object.field[i],long+1)}}if(object.extension){if(!Array.isArray(object.extension))throw TypeError(".google.protobuf.DescriptorProto.extension: array expected");message.extension=[];for(var i=0;i<object.extension.length;++i){if(typeof object.extension[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.extension: object expected");message.extension[i]=$root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i],long+1)}}if(object.nestedType){if(!Array.isArray(object.nestedType))throw TypeError(".google.protobuf.DescriptorProto.nestedType: array expected");message.nestedType=[];for(var i=0;i<object.nestedType.length;++i){if(typeof object.nestedType[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.nestedType: object expected");message.nestedType[i]=$root.google.protobuf.DescriptorProto.fromObject(object.nestedType[i],long+1)}}if(object.enumType){if(!Array.isArray(object.enumType))throw TypeError(".google.protobuf.DescriptorProto.enumType: array expected");message.enumType=[];for(var i=0;i<object.enumType.length;++i){if(typeof object.enumType[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.enumType: object expected");message.enumType[i]=$root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i],long+1)}}if(object.extensionRange){if(!Array.isArray(object.extensionRange))throw TypeError(".google.protobuf.DescriptorProto.extensionRange: array expected");message.extensionRange=[];for(var i=0;i<object.extensionRange.length;++i){if(typeof object.extensionRange[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.extensionRange: object expected");message.extensionRange[i]=$root.google.protobuf.DescriptorProto.ExtensionRange.fromObject(object.extensionRange[i],long+1)}}if(object.oneofDecl){if(!Array.isArray(object.oneofDecl))throw TypeError(".google.protobuf.DescriptorProto.oneofDecl: array expected");message.oneofDecl=[];for(var i=0;i<object.oneofDecl.length;++i){if(typeof object.oneofDecl[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.oneofDecl: object expected");message.oneofDecl[i]=$root.google.protobuf.OneofDescriptorProto.fromObject(object.oneofDecl[i],long+1)}}if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.DescriptorProto.options: object expected");message.options=$root.google.protobuf.MessageOptions.fromObject(object.options,long+1)}if(object.reservedRange){if(!Array.isArray(object.reservedRange))throw TypeError(".google.protobuf.DescriptorProto.reservedRange: array expected");message.reservedRange=[];for(var i=0;i<object.reservedRange.length;++i){if(typeof object.reservedRange[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.reservedRange: object expected");message.reservedRange[i]=$root.google.protobuf.DescriptorProto.ReservedRange.fromObject(object.reservedRange[i],long+1)}}if(object.reservedName){if(!Array.isArray(object.reservedName))throw TypeError(".google.protobuf.DescriptorProto.reservedName: array expected");message.reservedName=[];for(var i=0;i<object.reservedName.length;++i)message.reservedName[i]=String(object.reservedName[i])}switch(object.visibility){default:if(typeof object.visibility==="number"){message.visibility=object.visibility;break}break;case"VISIBILITY_UNSET":case 0:message.visibility=0;break;case"VISIBILITY_LOCAL":case 1:message.visibility=1;break;case"VISIBILITY_EXPORT":case 2:message.visibility=2;break}return message};DescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.field=[];object.nestedType=[];object.enumType=[];object.extensionRange=[];object.extension=[];object.oneofDecl=[];object.reservedRange=[];object.reservedName=[]}if(options.defaults){object.name="";object.options=null;object.visibility=options.enums===String?"VISIBILITY_UNSET":0}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.field&&message.field.length){object.field=[];for(var j=0;j<message.field.length;++j)object.field[j]=$root.google.protobuf.FieldDescriptorProto.toObject(message.field[j],options)}if(message.nestedType&&message.nestedType.length){object.nestedType=[];for(var j=0;j<message.nestedType.length;++j)object.nestedType[j]=$root.google.protobuf.DescriptorProto.toObject(message.nestedType[j],options)}if(message.enumType&&message.enumType.length){object.enumType=[];for(var j=0;j<message.enumType.length;++j)object.enumType[j]=$root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j],options)}if(message.extensionRange&&message.extensionRange.length){object.extensionRange=[];for(var j=0;j<message.extensionRange.length;++j)object.extensionRange[j]=$root.google.protobuf.DescriptorProto.ExtensionRange.toObject(message.extensionRange[j],options)}if(message.extension&&message.extension.length){object.extension=[];for(var j=0;j<message.extension.length;++j)object.extension[j]=$root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j],options)}if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.MessageOptions.toObject(message.options,options);if(message.oneofDecl&&message.oneofDecl.length){object.oneofDecl=[];for(var j=0;j<message.oneofDecl.length;++j)object.oneofDecl[j]=$root.google.protobuf.OneofDescriptorProto.toObject(message.oneofDecl[j],options)}if(message.reservedRange&&message.reservedRange.length){object.reservedRange=[];for(var j=0;j<message.reservedRange.length;++j)object.reservedRange[j]=$root.google.protobuf.DescriptorProto.ReservedRange.toObject(message.reservedRange[j],options)}if(message.reservedName&&message.reservedName.length){object.reservedName=[];for(var j=0;j<message.reservedName.length;++j)object.reservedName[j]=message.reservedName[j]}if(message.visibility!=null&&message.hasOwnProperty("visibility"))object.visibility=options.enums===String?$root.google.protobuf.SymbolVisibility[message.visibility]===undefined?message.visibility:$root.google.protobuf.SymbolVisibility[message.visibility]:message.visibility;return object};DescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DescriptorProto"};DescriptorProto.ExtensionRange=function(){function ExtensionRange(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ExtensionRange.prototype.start=0;ExtensionRange.prototype.end=0;ExtensionRange.prototype.options=null;ExtensionRange.create=function create(properties){return new ExtensionRange(properties)};ExtensionRange.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.start!=null&&Object.hasOwnProperty.call(message,"start"))writer.uint32(8).int32(message.start);if(message.end!=null&&Object.hasOwnProperty.call(message,"end"))writer.uint32(16).int32(message.end);if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.ExtensionRangeOptions.encode(message.options,writer.uint32(26).fork()).ldelim();return writer};ExtensionRange.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ExtensionRange.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DescriptorProto.ExtensionRange;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.start=reader.int32();break}case 2:{message.end=reader.int32();break}case 3:{message.options=$root.google.protobuf.ExtensionRangeOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExtensionRange.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExtensionRange.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.start!=null&&message.hasOwnProperty("start"))if(!$util.isInteger(message.start))return"start: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.ExtensionRangeOptions.verify(message.options,long+1);if(error)return"options."+error}return null};ExtensionRange.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DescriptorProto.ExtensionRange)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DescriptorProto.ExtensionRange;if(object.start!=null)message.start=object.start|0;if(object.end!=null)message.end=object.end|0;if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.DescriptorProto.ExtensionRange.options: object expected");message.options=$root.google.protobuf.ExtensionRangeOptions.fromObject(object.options,long+1)}return message};ExtensionRange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.start=0;object.end=0;object.options=null}if(message.start!=null&&message.hasOwnProperty("start"))object.start=message.start;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.ExtensionRangeOptions.toObject(message.options,options);return object};ExtensionRange.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExtensionRange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DescriptorProto.ExtensionRange"};return ExtensionRange}();DescriptorProto.ReservedRange=function(){function ReservedRange(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ReservedRange.prototype.start=0;ReservedRange.prototype.end=0;ReservedRange.create=function create(properties){return new ReservedRange(properties)};ReservedRange.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.start!=null&&Object.hasOwnProperty.call(message,"start"))writer.uint32(8).int32(message.start);if(message.end!=null&&Object.hasOwnProperty.call(message,"end"))writer.uint32(16).int32(message.end);return writer};ReservedRange.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ReservedRange.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DescriptorProto.ReservedRange;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.start=reader.int32();break}case 2:{message.end=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};ReservedRange.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ReservedRange.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.start!=null&&message.hasOwnProperty("start"))if(!$util.isInteger(message.start))return"start: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";return null};ReservedRange.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DescriptorProto.ReservedRange)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DescriptorProto.ReservedRange;if(object.start!=null)message.start=object.start|0;if(object.end!=null)message.end=object.end|0;return message};ReservedRange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.start=0;object.end=0}if(message.start!=null&&message.hasOwnProperty("start"))object.start=message.start;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;return object};ReservedRange.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ReservedRange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DescriptorProto.ReservedRange"};return ReservedRange}();return DescriptorProto}();protobuf.ExtensionRangeOptions=function(){function ExtensionRangeOptions(properties){this.uninterpretedOption=[];this.declaration=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ExtensionRangeOptions.prototype.uninterpretedOption=$util.emptyArray;ExtensionRangeOptions.prototype.declaration=$util.emptyArray;ExtensionRangeOptions.prototype.features=null;ExtensionRangeOptions.prototype.verification=1;ExtensionRangeOptions.create=function create(properties){return new ExtensionRangeOptions(properties)};ExtensionRangeOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.declaration!=null&&message.declaration.length)for(var i=0;i<message.declaration.length;++i)$root.google.protobuf.ExtensionRangeOptions.Declaration.encode(message.declaration[i],writer.uint32(18).fork()).ldelim();if(message.verification!=null&&Object.hasOwnProperty.call(message,"verification"))writer.uint32(24).int32(message.verification);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(402).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();return writer};ExtensionRangeOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ExtensionRangeOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ExtensionRangeOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{if(!(message.declaration&&message.declaration.length))message.declaration=[];message.declaration.push($root.google.protobuf.ExtensionRangeOptions.Declaration.decode(reader,reader.uint32(),undefined,long+1));break}case 50:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.verification=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};ExtensionRangeOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExtensionRangeOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}if(message.declaration!=null&&message.hasOwnProperty("declaration")){if(!Array.isArray(message.declaration))return"declaration: array expected";for(var i=0;i<message.declaration.length;++i){var error=$root.google.protobuf.ExtensionRangeOptions.Declaration.verify(message.declaration[i],long+1);if(error)return"declaration."+error}}if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.verification!=null&&message.hasOwnProperty("verification"))switch(message.verification){default:return"verification: enum value expected";case 0:case 1:break}return null};ExtensionRangeOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.ExtensionRangeOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ExtensionRangeOptions;if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}if(object.declaration){if(!Array.isArray(object.declaration))throw TypeError(".google.protobuf.ExtensionRangeOptions.declaration: array expected");message.declaration=[];for(var i=0;i<object.declaration.length;++i){if(typeof object.declaration[i]!=="object")throw TypeError(".google.protobuf.ExtensionRangeOptions.declaration: object expected");message.declaration[i]=$root.google.protobuf.ExtensionRangeOptions.Declaration.fromObject(object.declaration[i],long+1)}}if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.ExtensionRangeOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}switch(object.verification){case"DECLARATION":case 0:message.verification=0;break;default:if(typeof object.verification==="number"){message.verification=object.verification;break}break;case"UNVERIFIED":case 1:message.verification=1;break}return message};ExtensionRangeOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.declaration=[];object.uninterpretedOption=[]}if(options.defaults){object.verification=options.enums===String?"UNVERIFIED":1;object.features=null}if(message.declaration&&message.declaration.length){object.declaration=[];for(var j=0;j<message.declaration.length;++j)object.declaration[j]=$root.google.protobuf.ExtensionRangeOptions.Declaration.toObject(message.declaration[j],options)}if(message.verification!=null&&message.hasOwnProperty("verification"))object.verification=options.enums===String?$root.google.protobuf.ExtensionRangeOptions.VerificationState[message.verification]===undefined?message.verification:$root.google.protobuf.ExtensionRangeOptions.VerificationState[message.verification]:message.verification;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}return object};ExtensionRangeOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExtensionRangeOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.ExtensionRangeOptions"};ExtensionRangeOptions.Declaration=function(){function Declaration(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Declaration.prototype.number=0;Declaration.prototype.fullName="";Declaration.prototype.type="";Declaration.prototype.reserved=false;Declaration.prototype.repeated=false;Declaration.create=function create(properties){return new Declaration(properties)};Declaration.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.number!=null&&Object.hasOwnProperty.call(message,"number"))writer.uint32(8).int32(message.number);if(message.fullName!=null&&Object.hasOwnProperty.call(message,"fullName"))writer.uint32(18).string(message.fullName);if(message.type!=null&&Object.hasOwnProperty.call(message,"type"))writer.uint32(26).string(message.type);if(message.reserved!=null&&Object.hasOwnProperty.call(message,"reserved"))writer.uint32(40).bool(message.reserved);if(message.repeated!=null&&Object.hasOwnProperty.call(message,"repeated"))writer.uint32(48).bool(message.repeated);return writer};Declaration.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Declaration.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ExtensionRangeOptions.Declaration;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.number=reader.int32();break}case 2:{message.fullName=reader.string();break}case 3:{message.type=reader.string();break}case 5:{message.reserved=reader.bool();break}case 6:{message.repeated=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Declaration.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Declaration.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.number!=null&&message.hasOwnProperty("number"))if(!$util.isInteger(message.number))return"number: integer expected";if(message.fullName!=null&&message.hasOwnProperty("fullName"))if(!$util.isString(message.fullName))return"fullName: string expected";if(message.type!=null&&message.hasOwnProperty("type"))if(!$util.isString(message.type))return"type: string expected";if(message.reserved!=null&&message.hasOwnProperty("reserved"))if(typeof message.reserved!=="boolean")return"reserved: boolean expected";if(message.repeated!=null&&message.hasOwnProperty("repeated"))if(typeof message.repeated!=="boolean")return"repeated: boolean expected";return null};Declaration.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.ExtensionRangeOptions.Declaration)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ExtensionRangeOptions.Declaration;if(object.number!=null)message.number=object.number|0;if(object.fullName!=null)message.fullName=String(object.fullName);if(object.type!=null)message.type=String(object.type);if(object.reserved!=null)message.reserved=Boolean(object.reserved);if(object.repeated!=null)message.repeated=Boolean(object.repeated);return message};Declaration.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.number=0;object.fullName="";object.type="";object.reserved=false;object.repeated=false}if(message.number!=null&&message.hasOwnProperty("number"))object.number=message.number;if(message.fullName!=null&&message.hasOwnProperty("fullName"))object.fullName=message.fullName;if(message.type!=null&&message.hasOwnProperty("type"))object.type=message.type;if(message.reserved!=null&&message.hasOwnProperty("reserved"))object.reserved=message.reserved;if(message.repeated!=null&&message.hasOwnProperty("repeated"))object.repeated=message.repeated;return object};Declaration.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Declaration.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.ExtensionRangeOptions.Declaration"};return Declaration}();ExtensionRangeOptions.VerificationState=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DECLARATION"]=0;values[valuesById[1]="UNVERIFIED"]=1;return values}();return ExtensionRangeOptions}();protobuf.FieldDescriptorProto=function(){function FieldDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FieldDescriptorProto.prototype.name="";FieldDescriptorProto.prototype.number=0;FieldDescriptorProto.prototype.label=1;FieldDescriptorProto.prototype.type=1;FieldDescriptorProto.prototype.typeName="";FieldDescriptorProto.prototype.extendee="";FieldDescriptorProto.prototype.defaultValue="";FieldDescriptorProto.prototype.oneofIndex=0;FieldDescriptorProto.prototype.jsonName="";FieldDescriptorProto.prototype.options=null;FieldDescriptorProto.prototype.proto3Optional=false;FieldDescriptorProto.create=function create(properties){return new FieldDescriptorProto(properties)};FieldDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.extendee!=null&&Object.hasOwnProperty.call(message,"extendee"))writer.uint32(18).string(message.extendee);if(message.number!=null&&Object.hasOwnProperty.call(message,"number"))writer.uint32(24).int32(message.number);if(message.label!=null&&Object.hasOwnProperty.call(message,"label"))writer.uint32(32).int32(message.label);if(message.type!=null&&Object.hasOwnProperty.call(message,"type"))writer.uint32(40).int32(message.type);if(message.typeName!=null&&Object.hasOwnProperty.call(message,"typeName"))writer.uint32(50).string(message.typeName);if(message.defaultValue!=null&&Object.hasOwnProperty.call(message,"defaultValue"))writer.uint32(58).string(message.defaultValue);if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.FieldOptions.encode(message.options,writer.uint32(66).fork()).ldelim();if(message.oneofIndex!=null&&Object.hasOwnProperty.call(message,"oneofIndex"))writer.uint32(72).int32(message.oneofIndex);if(message.jsonName!=null&&Object.hasOwnProperty.call(message,"jsonName"))writer.uint32(82).string(message.jsonName);if(message.proto3Optional!=null&&Object.hasOwnProperty.call(message,"proto3Optional"))writer.uint32(136).bool(message.proto3Optional);return writer};FieldDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FieldDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 3:{message.number=reader.int32();break}case 4:{message.label=reader.int32();break}case 5:{message.type=reader.int32();break}case 6:{message.typeName=reader.string();break}case 2:{message.extendee=reader.string();break}case 7:{message.defaultValue=reader.string();break}case 9:{message.oneofIndex=reader.int32();break}case 10:{message.jsonName=reader.string();break}case 8:{message.options=$root.google.protobuf.FieldOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 17:{message.proto3Optional=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};FieldDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.number!=null&&message.hasOwnProperty("number"))if(!$util.isInteger(message.number))return"number: integer expected";if(message.label!=null&&message.hasOwnProperty("label"))switch(message.label){default:return"label: enum value expected";case 1:case 3:case 2:break}if(message.type!=null&&message.hasOwnProperty("type"))switch(message.type){default:return"type: enum value expected";case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:break}if(message.typeName!=null&&message.hasOwnProperty("typeName"))if(!$util.isString(message.typeName))return"typeName: string expected";if(message.extendee!=null&&message.hasOwnProperty("extendee"))if(!$util.isString(message.extendee))return"extendee: string expected";if(message.defaultValue!=null&&message.hasOwnProperty("defaultValue"))if(!$util.isString(message.defaultValue))return"defaultValue: string expected";if(message.oneofIndex!=null&&message.hasOwnProperty("oneofIndex"))if(!$util.isInteger(message.oneofIndex))return"oneofIndex: integer expected";if(message.jsonName!=null&&message.hasOwnProperty("jsonName"))if(!$util.isString(message.jsonName))return"jsonName: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.FieldOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.proto3Optional!=null&&message.hasOwnProperty("proto3Optional"))if(typeof message.proto3Optional!=="boolean")return"proto3Optional: boolean expected";return null};FieldDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.number!=null)message.number=object.number|0;switch(object.label){default:if(typeof object.label==="number"){message.label=object.label;break}break;case"LABEL_OPTIONAL":case 1:message.label=1;break;case"LABEL_REPEATED":case 3:message.label=3;break;case"LABEL_REQUIRED":case 2:message.label=2;break}switch(object.type){default:if(typeof object.type==="number"){message.type=object.type;break}break;case"TYPE_DOUBLE":case 1:message.type=1;break;case"TYPE_FLOAT":case 2:message.type=2;break;case"TYPE_INT64":case 3:message.type=3;break;case"TYPE_UINT64":case 4:message.type=4;break;case"TYPE_INT32":case 5:message.type=5;break;case"TYPE_FIXED64":case 6:message.type=6;break;case"TYPE_FIXED32":case 7:message.type=7;break;case"TYPE_BOOL":case 8:message.type=8;break;case"TYPE_STRING":case 9:message.type=9;break;case"TYPE_GROUP":case 10:message.type=10;break;case"TYPE_MESSAGE":case 11:message.type=11;break;case"TYPE_BYTES":case 12:message.type=12;break;case"TYPE_UINT32":case 13:message.type=13;break;case"TYPE_ENUM":case 14:message.type=14;break;case"TYPE_SFIXED32":case 15:message.type=15;break;case"TYPE_SFIXED64":case 16:message.type=16;break;case"TYPE_SINT32":case 17:message.type=17;break;case"TYPE_SINT64":case 18:message.type=18;break}if(object.typeName!=null)message.typeName=String(object.typeName);if(object.extendee!=null)message.extendee=String(object.extendee);if(object.defaultValue!=null)message.defaultValue=String(object.defaultValue);if(object.oneofIndex!=null)message.oneofIndex=object.oneofIndex|0;if(object.jsonName!=null)message.jsonName=String(object.jsonName);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.FieldDescriptorProto.options: object expected");message.options=$root.google.protobuf.FieldOptions.fromObject(object.options,long+1)}if(object.proto3Optional!=null)message.proto3Optional=Boolean(object.proto3Optional);return message};FieldDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.extendee="";object.number=0;object.label=options.enums===String?"LABEL_OPTIONAL":1;object.type=options.enums===String?"TYPE_DOUBLE":1;object.typeName="";object.defaultValue="";object.options=null;object.oneofIndex=0;object.jsonName="";object.proto3Optional=false}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.extendee!=null&&message.hasOwnProperty("extendee"))object.extendee=message.extendee;if(message.number!=null&&message.hasOwnProperty("number"))object.number=message.number;if(message.label!=null&&message.hasOwnProperty("label"))object.label=options.enums===String?$root.google.protobuf.FieldDescriptorProto.Label[message.label]===undefined?message.label:$root.google.protobuf.FieldDescriptorProto.Label[message.label]:message.label;if(message.type!=null&&message.hasOwnProperty("type"))object.type=options.enums===String?$root.google.protobuf.FieldDescriptorProto.Type[message.type]===undefined?message.type:$root.google.protobuf.FieldDescriptorProto.Type[message.type]:message.type;if(message.typeName!=null&&message.hasOwnProperty("typeName"))object.typeName=message.typeName;if(message.defaultValue!=null&&message.hasOwnProperty("defaultValue"))object.defaultValue=message.defaultValue;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.FieldOptions.toObject(message.options,options);if(message.oneofIndex!=null&&message.hasOwnProperty("oneofIndex"))object.oneofIndex=message.oneofIndex;if(message.jsonName!=null&&message.hasOwnProperty("jsonName"))object.jsonName=message.jsonName;if(message.proto3Optional!=null&&message.hasOwnProperty("proto3Optional"))object.proto3Optional=message.proto3Optional;return object};FieldDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldDescriptorProto"};FieldDescriptorProto.Type=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[1]="TYPE_DOUBLE"]=1;values[valuesById[2]="TYPE_FLOAT"]=2;values[valuesById[3]="TYPE_INT64"]=3;values[valuesById[4]="TYPE_UINT64"]=4;values[valuesById[5]="TYPE_INT32"]=5;values[valuesById[6]="TYPE_FIXED64"]=6;values[valuesById[7]="TYPE_FIXED32"]=7;values[valuesById[8]="TYPE_BOOL"]=8;values[valuesById[9]="TYPE_STRING"]=9;values[valuesById[10]="TYPE_GROUP"]=10;values[valuesById[11]="TYPE_MESSAGE"]=11;values[valuesById[12]="TYPE_BYTES"]=12;values[valuesById[13]="TYPE_UINT32"]=13;values[valuesById[14]="TYPE_ENUM"]=14;values[valuesById[15]="TYPE_SFIXED32"]=15;values[valuesById[16]="TYPE_SFIXED64"]=16;values[valuesById[17]="TYPE_SINT32"]=17;values[valuesById[18]="TYPE_SINT64"]=18;return values}();FieldDescriptorProto.Label=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[1]="LABEL_OPTIONAL"]=1;values[valuesById[3]="LABEL_REPEATED"]=3;values[valuesById[2]="LABEL_REQUIRED"]=2;return values}();return FieldDescriptorProto}();protobuf.OneofDescriptorProto=function(){function OneofDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}OneofDescriptorProto.prototype.name="";OneofDescriptorProto.prototype.options=null;OneofDescriptorProto.create=function create(properties){return new OneofDescriptorProto(properties)};OneofDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.OneofOptions.encode(message.options,writer.uint32(18).fork()).ldelim();return writer};OneofDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};OneofDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.OneofDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{message.options=$root.google.protobuf.OneofOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};OneofDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};OneofDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.OneofOptions.verify(message.options,long+1);if(error)return"options."+error}return null};OneofDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.OneofDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.OneofDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.OneofDescriptorProto.options: object expected");message.options=$root.google.protobuf.OneofOptions.fromObject(object.options,long+1)}return message};OneofDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.options=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.OneofOptions.toObject(message.options,options);return object};OneofDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};OneofDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.OneofDescriptorProto"};return OneofDescriptorProto}();protobuf.EnumDescriptorProto=function(){function EnumDescriptorProto(properties){this.value=[];this.reservedRange=[];this.reservedName=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}EnumDescriptorProto.prototype.name="";EnumDescriptorProto.prototype.value=$util.emptyArray;EnumDescriptorProto.prototype.options=null;EnumDescriptorProto.prototype.reservedRange=$util.emptyArray;EnumDescriptorProto.prototype.reservedName=$util.emptyArray;EnumDescriptorProto.prototype.visibility=0;EnumDescriptorProto.create=function create(properties){return new EnumDescriptorProto(properties)};EnumDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.value!=null&&message.value.length)for(var i=0;i<message.value.length;++i)$root.google.protobuf.EnumValueDescriptorProto.encode(message.value[i],writer.uint32(18).fork()).ldelim();if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.EnumOptions.encode(message.options,writer.uint32(26).fork()).ldelim();if(message.reservedRange!=null&&message.reservedRange.length)for(var i=0;i<message.reservedRange.length;++i)$root.google.protobuf.EnumDescriptorProto.EnumReservedRange.encode(message.reservedRange[i],writer.uint32(34).fork()).ldelim();if(message.reservedName!=null&&message.reservedName.length)for(var i=0;i<message.reservedName.length;++i)writer.uint32(42).string(message.reservedName[i]);if(message.visibility!=null&&Object.hasOwnProperty.call(message,"visibility"))writer.uint32(48).int32(message.visibility);return writer};EnumDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};EnumDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.value&&message.value.length))message.value=[];message.value.push($root.google.protobuf.EnumValueDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.options=$root.google.protobuf.EnumOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{if(!(message.reservedRange&&message.reservedRange.length))message.reservedRange=[];message.reservedRange.push($root.google.protobuf.EnumDescriptorProto.EnumReservedRange.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{if(!(message.reservedName&&message.reservedName.length))message.reservedName=[];message.reservedName.push(reader.string());break}case 6:{message.visibility=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};EnumDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.value!=null&&message.hasOwnProperty("value")){if(!Array.isArray(message.value))return"value: array expected";for(var i=0;i<message.value.length;++i){var error=$root.google.protobuf.EnumValueDescriptorProto.verify(message.value[i],long+1);if(error)return"value."+error}}if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.EnumOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.reservedRange!=null&&message.hasOwnProperty("reservedRange")){if(!Array.isArray(message.reservedRange))return"reservedRange: array expected";for(var i=0;i<message.reservedRange.length;++i){var error=$root.google.protobuf.EnumDescriptorProto.EnumReservedRange.verify(message.reservedRange[i],long+1);if(error)return"reservedRange."+error}}if(message.reservedName!=null&&message.hasOwnProperty("reservedName")){if(!Array.isArray(message.reservedName))return"reservedName: array expected";for(var i=0;i<message.reservedName.length;++i)if(!$util.isString(message.reservedName[i]))return"reservedName: string[] expected"}if(message.visibility!=null&&message.hasOwnProperty("visibility"))switch(message.visibility){default:return"visibility: enum value expected";case 0:case 1:case 2:break}return null};EnumDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.value){if(!Array.isArray(object.value))throw TypeError(".google.protobuf.EnumDescriptorProto.value: array expected");message.value=[];for(var i=0;i<object.value.length;++i){if(typeof object.value[i]!=="object")throw TypeError(".google.protobuf.EnumDescriptorProto.value: object expected");message.value[i]=$root.google.protobuf.EnumValueDescriptorProto.fromObject(object.value[i],long+1)}}if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.EnumDescriptorProto.options: object expected");message.options=$root.google.protobuf.EnumOptions.fromObject(object.options,long+1)}if(object.reservedRange){if(!Array.isArray(object.reservedRange))throw TypeError(".google.protobuf.EnumDescriptorProto.reservedRange: array expected");message.reservedRange=[];for(var i=0;i<object.reservedRange.length;++i){if(typeof object.reservedRange[i]!=="object")throw TypeError(".google.protobuf.EnumDescriptorProto.reservedRange: object expected");message.reservedRange[i]=$root.google.protobuf.EnumDescriptorProto.EnumReservedRange.fromObject(object.reservedRange[i],long+1)}}if(object.reservedName){if(!Array.isArray(object.reservedName))throw TypeError(".google.protobuf.EnumDescriptorProto.reservedName: array expected");message.reservedName=[];for(var i=0;i<object.reservedName.length;++i)message.reservedName[i]=String(object.reservedName[i])}switch(object.visibility){default:if(typeof object.visibility==="number"){message.visibility=object.visibility;break}break;case"VISIBILITY_UNSET":case 0:message.visibility=0;break;case"VISIBILITY_LOCAL":case 1:message.visibility=1;break;case"VISIBILITY_EXPORT":case 2:message.visibility=2;break}return message};EnumDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.value=[];object.reservedRange=[];object.reservedName=[]}if(options.defaults){object.name="";object.options=null;object.visibility=options.enums===String?"VISIBILITY_UNSET":0}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.value&&message.value.length){object.value=[];for(var j=0;j<message.value.length;++j)object.value[j]=$root.google.protobuf.EnumValueDescriptorProto.toObject(message.value[j],options)}if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.EnumOptions.toObject(message.options,options);if(message.reservedRange&&message.reservedRange.length){object.reservedRange=[];for(var j=0;j<message.reservedRange.length;++j)object.reservedRange[j]=$root.google.protobuf.EnumDescriptorProto.EnumReservedRange.toObject(message.reservedRange[j],options)}if(message.reservedName&&message.reservedName.length){object.reservedName=[];for(var j=0;j<message.reservedName.length;++j)object.reservedName[j]=message.reservedName[j]}if(message.visibility!=null&&message.hasOwnProperty("visibility"))object.visibility=options.enums===String?$root.google.protobuf.SymbolVisibility[message.visibility]===undefined?message.visibility:$root.google.protobuf.SymbolVisibility[message.visibility]:message.visibility;return object};EnumDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumDescriptorProto"};EnumDescriptorProto.EnumReservedRange=function(){function EnumReservedRange(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}EnumReservedRange.prototype.start=0;EnumReservedRange.prototype.end=0;EnumReservedRange.create=function create(properties){return new EnumReservedRange(properties)};EnumReservedRange.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.start!=null&&Object.hasOwnProperty.call(message,"start"))writer.uint32(8).int32(message.start);if(message.end!=null&&Object.hasOwnProperty.call(message,"end"))writer.uint32(16).int32(message.end);return writer};EnumReservedRange.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};EnumReservedRange.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.start=reader.int32();break}case 2:{message.end=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};EnumReservedRange.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumReservedRange.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.start!=null&&message.hasOwnProperty("start"))if(!$util.isInteger(message.start))return"start: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";return null};EnumReservedRange.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumDescriptorProto.EnumReservedRange)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange;if(object.start!=null)message.start=object.start|0;if(object.end!=null)message.end=object.end|0;return message};EnumReservedRange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.start=0;object.end=0}if(message.start!=null&&message.hasOwnProperty("start"))object.start=message.start;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;return object};EnumReservedRange.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumReservedRange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumDescriptorProto.EnumReservedRange"};return EnumReservedRange}();return EnumDescriptorProto}();protobuf.EnumValueDescriptorProto=function(){function EnumValueDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}EnumValueDescriptorProto.prototype.name="";EnumValueDescriptorProto.prototype.number=0;EnumValueDescriptorProto.prototype.options=null;EnumValueDescriptorProto.create=function create(properties){return new EnumValueDescriptorProto(properties)};EnumValueDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.number!=null&&Object.hasOwnProperty.call(message,"number"))writer.uint32(16).int32(message.number);if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.EnumValueOptions.encode(message.options,writer.uint32(26).fork()).ldelim();return writer};EnumValueDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};EnumValueDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumValueDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{message.number=reader.int32();break}case 3:{message.options=$root.google.protobuf.EnumValueOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};EnumValueDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumValueDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.number!=null&&message.hasOwnProperty("number"))if(!$util.isInteger(message.number))return"number: integer expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.EnumValueOptions.verify(message.options,long+1);if(error)return"options."+error}return null};EnumValueDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumValueDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumValueDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.number!=null)message.number=object.number|0;if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.EnumValueDescriptorProto.options: object expected");message.options=$root.google.protobuf.EnumValueOptions.fromObject(object.options,long+1)}return message};EnumValueDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.number=0;object.options=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.number!=null&&message.hasOwnProperty("number"))object.number=message.number;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.EnumValueOptions.toObject(message.options,options);return object};EnumValueDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumValueDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumValueDescriptorProto"};return EnumValueDescriptorProto}();protobuf.ServiceDescriptorProto=function(){function ServiceDescriptorProto(properties){this.method=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ServiceDescriptorProto.prototype.name="";ServiceDescriptorProto.prototype.method=$util.emptyArray;ServiceDescriptorProto.prototype.options=null;ServiceDescriptorProto.create=function create(properties){return new ServiceDescriptorProto(properties)};ServiceDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.method!=null&&message.method.length)for(var i=0;i<message.method.length;++i)$root.google.protobuf.MethodDescriptorProto.encode(message.method[i],writer.uint32(18).fork()).ldelim();if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.ServiceOptions.encode(message.options,writer.uint32(26).fork()).ldelim();return writer};ServiceDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ServiceDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ServiceDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.method&&message.method.length))message.method=[];message.method.push($root.google.protobuf.MethodDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.options=$root.google.protobuf.ServiceOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ServiceDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ServiceDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.method!=null&&message.hasOwnProperty("method")){if(!Array.isArray(message.method))return"method: array expected";for(var i=0;i<message.method.length;++i){var error=$root.google.protobuf.MethodDescriptorProto.verify(message.method[i],long+1);if(error)return"method."+error}}if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.ServiceOptions.verify(message.options,long+1);if(error)return"options."+error}return null};ServiceDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.ServiceDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ServiceDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.method){if(!Array.isArray(object.method))throw TypeError(".google.protobuf.ServiceDescriptorProto.method: array expected");message.method=[];for(var i=0;i<object.method.length;++i){if(typeof object.method[i]!=="object")throw TypeError(".google.protobuf.ServiceDescriptorProto.method: object expected");message.method[i]=$root.google.protobuf.MethodDescriptorProto.fromObject(object.method[i],long+1)}}if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.ServiceDescriptorProto.options: object expected");message.options=$root.google.protobuf.ServiceOptions.fromObject(object.options,long+1)}return message};ServiceDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.method=[];if(options.defaults){object.name="";object.options=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.method&&message.method.length){object.method=[];for(var j=0;j<message.method.length;++j)object.method[j]=$root.google.protobuf.MethodDescriptorProto.toObject(message.method[j],options)}if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.ServiceOptions.toObject(message.options,options);return object};ServiceDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ServiceDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.ServiceDescriptorProto"};return ServiceDescriptorProto}();protobuf.MethodDescriptorProto=function(){function MethodDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}MethodDescriptorProto.prototype.name="";MethodDescriptorProto.prototype.inputType="";MethodDescriptorProto.prototype.outputType="";MethodDescriptorProto.prototype.options=null;MethodDescriptorProto.prototype.clientStreaming=false;MethodDescriptorProto.prototype.serverStreaming=false;MethodDescriptorProto.create=function create(properties){return new MethodDescriptorProto(properties)};MethodDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.inputType!=null&&Object.hasOwnProperty.call(message,"inputType"))writer.uint32(18).string(message.inputType);if(message.outputType!=null&&Object.hasOwnProperty.call(message,"outputType"))writer.uint32(26).string(message.outputType);if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.MethodOptions.encode(message.options,writer.uint32(34).fork()).ldelim();if(message.clientStreaming!=null&&Object.hasOwnProperty.call(message,"clientStreaming"))writer.uint32(40).bool(message.clientStreaming);if(message.serverStreaming!=null&&Object.hasOwnProperty.call(message,"serverStreaming"))writer.uint32(48).bool(message.serverStreaming);return writer};MethodDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};MethodDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.MethodDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{message.inputType=reader.string();break}case 3:{message.outputType=reader.string();break}case 4:{message.options=$root.google.protobuf.MethodOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.clientStreaming=reader.bool();break}case 6:{message.serverStreaming=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};MethodDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MethodDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.inputType!=null&&message.hasOwnProperty("inputType"))if(!$util.isString(message.inputType))return"inputType: string expected";if(message.outputType!=null&&message.hasOwnProperty("outputType"))if(!$util.isString(message.outputType))return"outputType: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.MethodOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.clientStreaming!=null&&message.hasOwnProperty("clientStreaming"))if(typeof message.clientStreaming!=="boolean")return"clientStreaming: boolean expected";if(message.serverStreaming!=null&&message.hasOwnProperty("serverStreaming"))if(typeof message.serverStreaming!=="boolean")return"serverStreaming: boolean expected";return null};MethodDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.MethodDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.MethodDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.inputType!=null)message.inputType=String(object.inputType);if(object.outputType!=null)message.outputType=String(object.outputType);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.MethodDescriptorProto.options: object expected");message.options=$root.google.protobuf.MethodOptions.fromObject(object.options,long+1)}if(object.clientStreaming!=null)message.clientStreaming=Boolean(object.clientStreaming);if(object.serverStreaming!=null)message.serverStreaming=Boolean(object.serverStreaming);return message};MethodDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.inputType="";object.outputType="";object.options=null;object.clientStreaming=false;object.serverStreaming=false}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.inputType!=null&&message.hasOwnProperty("inputType"))object.inputType=message.inputType;if(message.outputType!=null&&message.hasOwnProperty("outputType"))object.outputType=message.outputType;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.MethodOptions.toObject(message.options,options);if(message.clientStreaming!=null&&message.hasOwnProperty("clientStreaming"))object.clientStreaming=message.clientStreaming;if(message.serverStreaming!=null&&message.hasOwnProperty("serverStreaming"))object.serverStreaming=message.serverStreaming;return object};MethodDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};MethodDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.MethodDescriptorProto"};return MethodDescriptorProto}();protobuf.FileOptions=function(){function FileOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FileOptions.prototype.javaPackage="";FileOptions.prototype.javaOuterClassname="";FileOptions.prototype.javaMultipleFiles=false;FileOptions.prototype.javaGenerateEqualsAndHash=false;FileOptions.prototype.javaStringCheckUtf8=false;FileOptions.prototype.optimizeFor=1;FileOptions.prototype.goPackage="";FileOptions.prototype.ccGenericServices=false;FileOptions.prototype.javaGenericServices=false;FileOptions.prototype.pyGenericServices=false;FileOptions.prototype.deprecated=false;FileOptions.prototype.ccEnableArenas=true;FileOptions.prototype.objcClassPrefix="";FileOptions.prototype.csharpNamespace="";FileOptions.prototype.swiftPrefix="";FileOptions.prototype.phpClassPrefix="";FileOptions.prototype.phpNamespace="";FileOptions.prototype.phpMetadataNamespace="";FileOptions.prototype.rubyPackage="";FileOptions.prototype.features=null;FileOptions.prototype.uninterpretedOption=$util.emptyArray;FileOptions.create=function create(properties){return new FileOptions(properties)};FileOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.javaPackage!=null&&Object.hasOwnProperty.call(message,"javaPackage"))writer.uint32(10).string(message.javaPackage);if(message.javaOuterClassname!=null&&Object.hasOwnProperty.call(message,"javaOuterClassname"))writer.uint32(66).string(message.javaOuterClassname);if(message.optimizeFor!=null&&Object.hasOwnProperty.call(message,"optimizeFor"))writer.uint32(72).int32(message.optimizeFor);if(message.javaMultipleFiles!=null&&Object.hasOwnProperty.call(message,"javaMultipleFiles"))writer.uint32(80).bool(message.javaMultipleFiles);if(message.goPackage!=null&&Object.hasOwnProperty.call(message,"goPackage"))writer.uint32(90).string(message.goPackage);if(message.ccGenericServices!=null&&Object.hasOwnProperty.call(message,"ccGenericServices"))writer.uint32(128).bool(message.ccGenericServices);if(message.javaGenericServices!=null&&Object.hasOwnProperty.call(message,"javaGenericServices"))writer.uint32(136).bool(message.javaGenericServices);if(message.pyGenericServices!=null&&Object.hasOwnProperty.call(message,"pyGenericServices"))writer.uint32(144).bool(message.pyGenericServices);if(message.javaGenerateEqualsAndHash!=null&&Object.hasOwnProperty.call(message,"javaGenerateEqualsAndHash"))writer.uint32(160).bool(message.javaGenerateEqualsAndHash);if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(184).bool(message.deprecated);if(message.javaStringCheckUtf8!=null&&Object.hasOwnProperty.call(message,"javaStringCheckUtf8"))writer.uint32(216).bool(message.javaStringCheckUtf8);if(message.ccEnableArenas!=null&&Object.hasOwnProperty.call(message,"ccEnableArenas"))writer.uint32(248).bool(message.ccEnableArenas);if(message.objcClassPrefix!=null&&Object.hasOwnProperty.call(message,"objcClassPrefix"))writer.uint32(290).string(message.objcClassPrefix);if(message.csharpNamespace!=null&&Object.hasOwnProperty.call(message,"csharpNamespace"))writer.uint32(298).string(message.csharpNamespace);if(message.swiftPrefix!=null&&Object.hasOwnProperty.call(message,"swiftPrefix"))writer.uint32(314).string(message.swiftPrefix);if(message.phpClassPrefix!=null&&Object.hasOwnProperty.call(message,"phpClassPrefix"))writer.uint32(322).string(message.phpClassPrefix);if(message.phpNamespace!=null&&Object.hasOwnProperty.call(message,"phpNamespace"))writer.uint32(330).string(message.phpNamespace);if(message.phpMetadataNamespace!=null&&Object.hasOwnProperty.call(message,"phpMetadataNamespace"))writer.uint32(354).string(message.phpMetadataNamespace);if(message.rubyPackage!=null&&Object.hasOwnProperty.call(message,"rubyPackage"))writer.uint32(362).string(message.rubyPackage);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(402).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();return writer};FileOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FileOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FileOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.javaPackage=reader.string();break}case 8:{message.javaOuterClassname=reader.string();break}case 10:{message.javaMultipleFiles=reader.bool();break}case 20:{message.javaGenerateEqualsAndHash=reader.bool();break}case 27:{message.javaStringCheckUtf8=reader.bool();break}case 9:{message.optimizeFor=reader.int32();break}case 11:{message.goPackage=reader.string();break}case 16:{message.ccGenericServices=reader.bool();break}case 17:{message.javaGenericServices=reader.bool();break}case 18:{message.pyGenericServices=reader.bool();break}case 23:{message.deprecated=reader.bool();break}case 31:{message.ccEnableArenas=reader.bool();break}case 36:{message.objcClassPrefix=reader.string();break}case 37:{message.csharpNamespace=reader.string();break}case 39:{message.swiftPrefix=reader.string();break}case 40:{message.phpClassPrefix=reader.string();break}case 41:{message.phpNamespace=reader.string();break}case 44:{message.phpMetadataNamespace=reader.string();break}case 45:{message.rubyPackage=reader.string();break}case 50:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};FileOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FileOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.javaPackage!=null&&message.hasOwnProperty("javaPackage"))if(!$util.isString(message.javaPackage))return"javaPackage: string expected";if(message.javaOuterClassname!=null&&message.hasOwnProperty("javaOuterClassname"))if(!$util.isString(message.javaOuterClassname))return"javaOuterClassname: string expected";if(message.javaMultipleFiles!=null&&message.hasOwnProperty("javaMultipleFiles"))if(typeof message.javaMultipleFiles!=="boolean")return"javaMultipleFiles: boolean expected";if(message.javaGenerateEqualsAndHash!=null&&message.hasOwnProperty("javaGenerateEqualsAndHash"))if(typeof message.javaGenerateEqualsAndHash!=="boolean")return"javaGenerateEqualsAndHash: boolean expected";if(message.javaStringCheckUtf8!=null&&message.hasOwnProperty("javaStringCheckUtf8"))if(typeof message.javaStringCheckUtf8!=="boolean")return"javaStringCheckUtf8: boolean expected";if(message.optimizeFor!=null&&message.hasOwnProperty("optimizeFor"))switch(message.optimizeFor){default:return"optimizeFor: enum value expected";case 1:case 2:case 3:break}if(message.goPackage!=null&&message.hasOwnProperty("goPackage"))if(!$util.isString(message.goPackage))return"goPackage: string expected";if(message.ccGenericServices!=null&&message.hasOwnProperty("ccGenericServices"))if(typeof message.ccGenericServices!=="boolean")return"ccGenericServices: boolean expected";if(message.javaGenericServices!=null&&message.hasOwnProperty("javaGenericServices"))if(typeof message.javaGenericServices!=="boolean")return"javaGenericServices: boolean expected";if(message.pyGenericServices!=null&&message.hasOwnProperty("pyGenericServices"))if(typeof message.pyGenericServices!=="boolean")return"pyGenericServices: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.ccEnableArenas!=null&&message.hasOwnProperty("ccEnableArenas"))if(typeof message.ccEnableArenas!=="boolean")return"ccEnableArenas: boolean expected";if(message.objcClassPrefix!=null&&message.hasOwnProperty("objcClassPrefix"))if(!$util.isString(message.objcClassPrefix))return"objcClassPrefix: string expected";if(message.csharpNamespace!=null&&message.hasOwnProperty("csharpNamespace"))if(!$util.isString(message.csharpNamespace))return"csharpNamespace: string expected";if(message.swiftPrefix!=null&&message.hasOwnProperty("swiftPrefix"))if(!$util.isString(message.swiftPrefix))return"swiftPrefix: string expected";if(message.phpClassPrefix!=null&&message.hasOwnProperty("phpClassPrefix"))if(!$util.isString(message.phpClassPrefix))return"phpClassPrefix: string expected";if(message.phpNamespace!=null&&message.hasOwnProperty("phpNamespace"))if(!$util.isString(message.phpNamespace))return"phpNamespace: string expected";if(message.phpMetadataNamespace!=null&&message.hasOwnProperty("phpMetadataNamespace"))if(!$util.isString(message.phpMetadataNamespace))return"phpMetadataNamespace: string expected";if(message.rubyPackage!=null&&message.hasOwnProperty("rubyPackage"))if(!$util.isString(message.rubyPackage))return"rubyPackage: string expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}return null};FileOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FileOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FileOptions;if(object.javaPackage!=null)message.javaPackage=String(object.javaPackage);if(object.javaOuterClassname!=null)message.javaOuterClassname=String(object.javaOuterClassname);if(object.javaMultipleFiles!=null)message.javaMultipleFiles=Boolean(object.javaMultipleFiles);if(object.javaGenerateEqualsAndHash!=null)message.javaGenerateEqualsAndHash=Boolean(object.javaGenerateEqualsAndHash);if(object.javaStringCheckUtf8!=null)message.javaStringCheckUtf8=Boolean(object.javaStringCheckUtf8);switch(object.optimizeFor){default:if(typeof object.optimizeFor==="number"){message.optimizeFor=object.optimizeFor;break}break;case"SPEED":case 1:message.optimizeFor=1;break;case"CODE_SIZE":case 2:message.optimizeFor=2;break;case"LITE_RUNTIME":case 3:message.optimizeFor=3;break}if(object.goPackage!=null)message.goPackage=String(object.goPackage);if(object.ccGenericServices!=null)message.ccGenericServices=Boolean(object.ccGenericServices);if(object.javaGenericServices!=null)message.javaGenericServices=Boolean(object.javaGenericServices);if(object.pyGenericServices!=null)message.pyGenericServices=Boolean(object.pyGenericServices);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.ccEnableArenas!=null)message.ccEnableArenas=Boolean(object.ccEnableArenas);if(object.objcClassPrefix!=null)message.objcClassPrefix=String(object.objcClassPrefix);if(object.csharpNamespace!=null)message.csharpNamespace=String(object.csharpNamespace);if(object.swiftPrefix!=null)message.swiftPrefix=String(object.swiftPrefix);if(object.phpClassPrefix!=null)message.phpClassPrefix=String(object.phpClassPrefix);if(object.phpNamespace!=null)message.phpNamespace=String(object.phpNamespace);if(object.phpMetadataNamespace!=null)message.phpMetadataNamespace=String(object.phpMetadataNamespace);if(object.rubyPackage!=null)message.rubyPackage=String(object.rubyPackage);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.FileOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}return message};FileOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.uninterpretedOption=[];if(options.defaults){object.javaPackage="";object.javaOuterClassname="";object.optimizeFor=options.enums===String?"SPEED":1;object.javaMultipleFiles=false;object.goPackage="";object.ccGenericServices=false;object.javaGenericServices=false;object.pyGenericServices=false;object.javaGenerateEqualsAndHash=false;object.deprecated=false;object.javaStringCheckUtf8=false;object.ccEnableArenas=true;object.objcClassPrefix="";object.csharpNamespace="";object.swiftPrefix="";object.phpClassPrefix="";object.phpNamespace="";object.phpMetadataNamespace="";object.rubyPackage="";object.features=null}if(message.javaPackage!=null&&message.hasOwnProperty("javaPackage"))object.javaPackage=message.javaPackage;if(message.javaOuterClassname!=null&&message.hasOwnProperty("javaOuterClassname"))object.javaOuterClassname=message.javaOuterClassname;if(message.optimizeFor!=null&&message.hasOwnProperty("optimizeFor"))object.optimizeFor=options.enums===String?$root.google.protobuf.FileOptions.OptimizeMode[message.optimizeFor]===undefined?message.optimizeFor:$root.google.protobuf.FileOptions.OptimizeMode[message.optimizeFor]:message.optimizeFor;if(message.javaMultipleFiles!=null&&message.hasOwnProperty("javaMultipleFiles"))object.javaMultipleFiles=message.javaMultipleFiles;if(message.goPackage!=null&&message.hasOwnProperty("goPackage"))object.goPackage=message.goPackage;if(message.ccGenericServices!=null&&message.hasOwnProperty("ccGenericServices"))object.ccGenericServices=message.ccGenericServices;if(message.javaGenericServices!=null&&message.hasOwnProperty("javaGenericServices"))object.javaGenericServices=message.javaGenericServices;if(message.pyGenericServices!=null&&message.hasOwnProperty("pyGenericServices"))object.pyGenericServices=message.pyGenericServices;if(message.javaGenerateEqualsAndHash!=null&&message.hasOwnProperty("javaGenerateEqualsAndHash"))object.javaGenerateEqualsAndHash=message.javaGenerateEqualsAndHash;if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.javaStringCheckUtf8!=null&&message.hasOwnProperty("javaStringCheckUtf8"))object.javaStringCheckUtf8=message.javaStringCheckUtf8;if(message.ccEnableArenas!=null&&message.hasOwnProperty("ccEnableArenas"))object.ccEnableArenas=message.ccEnableArenas;if(message.objcClassPrefix!=null&&message.hasOwnProperty("objcClassPrefix"))object.objcClassPrefix=message.objcClassPrefix;if(message.csharpNamespace!=null&&message.hasOwnProperty("csharpNamespace"))object.csharpNamespace=message.csharpNamespace;if(message.swiftPrefix!=null&&message.hasOwnProperty("swiftPrefix"))object.swiftPrefix=message.swiftPrefix;if(message.phpClassPrefix!=null&&message.hasOwnProperty("phpClassPrefix"))object.phpClassPrefix=message.phpClassPrefix;if(message.phpNamespace!=null&&message.hasOwnProperty("phpNamespace"))object.phpNamespace=message.phpNamespace;if(message.phpMetadataNamespace!=null&&message.hasOwnProperty("phpMetadataNamespace"))object.phpMetadataNamespace=message.phpMetadataNamespace;if(message.rubyPackage!=null&&message.hasOwnProperty("rubyPackage"))object.rubyPackage=message.rubyPackage;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}return object};FileOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FileOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FileOptions"};FileOptions.OptimizeMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[1]="SPEED"]=1;values[valuesById[2]="CODE_SIZE"]=2;values[valuesById[3]="LITE_RUNTIME"]=3;return values}();return FileOptions}();protobuf.MessageOptions=function(){function MessageOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}MessageOptions.prototype.messageSetWireFormat=false;MessageOptions.prototype.noStandardDescriptorAccessor=false;MessageOptions.prototype.deprecated=false;MessageOptions.prototype.mapEntry=false;MessageOptions.prototype.deprecatedLegacyJsonFieldConflicts=false;MessageOptions.prototype.features=null;MessageOptions.prototype.uninterpretedOption=$util.emptyArray;MessageOptions.create=function create(properties){return new MessageOptions(properties)};MessageOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.messageSetWireFormat!=null&&Object.hasOwnProperty.call(message,"messageSetWireFormat"))writer.uint32(8).bool(message.messageSetWireFormat);if(message.noStandardDescriptorAccessor!=null&&Object.hasOwnProperty.call(message,"noStandardDescriptorAccessor"))writer.uint32(16).bool(message.noStandardDescriptorAccessor);if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(24).bool(message.deprecated);if(message.mapEntry!=null&&Object.hasOwnProperty.call(message,"mapEntry"))writer.uint32(56).bool(message.mapEntry);if(message.deprecatedLegacyJsonFieldConflicts!=null&&Object.hasOwnProperty.call(message,"deprecatedLegacyJsonFieldConflicts"))writer.uint32(88).bool(message.deprecatedLegacyJsonFieldConflicts);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(98).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();return writer};MessageOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};MessageOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.MessageOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.messageSetWireFormat=reader.bool();break}case 2:{message.noStandardDescriptorAccessor=reader.bool();break}case 3:{message.deprecated=reader.bool();break}case 7:{message.mapEntry=reader.bool();break}case 11:{message.deprecatedLegacyJsonFieldConflicts=reader.bool();break}case 12:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};MessageOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MessageOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.messageSetWireFormat!=null&&message.hasOwnProperty("messageSetWireFormat"))if(typeof message.messageSetWireFormat!=="boolean")return"messageSetWireFormat: boolean expected";if(message.noStandardDescriptorAccessor!=null&&message.hasOwnProperty("noStandardDescriptorAccessor"))if(typeof message.noStandardDescriptorAccessor!=="boolean")return"noStandardDescriptorAccessor: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.mapEntry!=null&&message.hasOwnProperty("mapEntry"))if(typeof message.mapEntry!=="boolean")return"mapEntry: boolean expected";if(message.deprecatedLegacyJsonFieldConflicts!=null&&message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts"))if(typeof message.deprecatedLegacyJsonFieldConflicts!=="boolean")return"deprecatedLegacyJsonFieldConflicts: boolean expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}return null};MessageOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.MessageOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.MessageOptions;if(object.messageSetWireFormat!=null)message.messageSetWireFormat=Boolean(object.messageSetWireFormat);if(object.noStandardDescriptorAccessor!=null)message.noStandardDescriptorAccessor=Boolean(object.noStandardDescriptorAccessor);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.mapEntry!=null)message.mapEntry=Boolean(object.mapEntry);if(object.deprecatedLegacyJsonFieldConflicts!=null)message.deprecatedLegacyJsonFieldConflicts=Boolean(object.deprecatedLegacyJsonFieldConflicts);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.MessageOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}return message};MessageOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.uninterpretedOption=[];if(options.defaults){object.messageSetWireFormat=false;object.noStandardDescriptorAccessor=false;object.deprecated=false;object.mapEntry=false;object.deprecatedLegacyJsonFieldConflicts=false;object.features=null}if(message.messageSetWireFormat!=null&&message.hasOwnProperty("messageSetWireFormat"))object.messageSetWireFormat=message.messageSetWireFormat;if(message.noStandardDescriptorAccessor!=null&&message.hasOwnProperty("noStandardDescriptorAccessor"))object.noStandardDescriptorAccessor=message.noStandardDescriptorAccessor;if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.mapEntry!=null&&message.hasOwnProperty("mapEntry"))object.mapEntry=message.mapEntry;if(message.deprecatedLegacyJsonFieldConflicts!=null&&message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts"))object.deprecatedLegacyJsonFieldConflicts=message.deprecatedLegacyJsonFieldConflicts;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}return object};MessageOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};MessageOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.MessageOptions"};return MessageOptions}();protobuf.FieldOptions=function(){function FieldOptions(properties){this.targets=[];this.editionDefaults=[];this.uninterpretedOption=[];this[".google.api.fieldBehavior"]=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FieldOptions.prototype.ctype=0;FieldOptions.prototype.packed=false;FieldOptions.prototype.jstype=0;FieldOptions.prototype.lazy=false;FieldOptions.prototype.unverifiedLazy=false;FieldOptions.prototype.deprecated=false;FieldOptions.prototype.weak=false;FieldOptions.prototype.debugRedact=false;FieldOptions.prototype.retention=0;FieldOptions.prototype.targets=$util.emptyArray;FieldOptions.prototype.editionDefaults=$util.emptyArray;FieldOptions.prototype.features=null;FieldOptions.prototype.featureSupport=null;FieldOptions.prototype.uninterpretedOption=$util.emptyArray;FieldOptions.prototype[".google.api.fieldBehavior"]=$util.emptyArray;FieldOptions.create=function create(properties){return new FieldOptions(properties)};FieldOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.ctype!=null&&Object.hasOwnProperty.call(message,"ctype"))writer.uint32(8).int32(message.ctype);if(message.packed!=null&&Object.hasOwnProperty.call(message,"packed"))writer.uint32(16).bool(message.packed);if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(24).bool(message.deprecated);if(message.lazy!=null&&Object.hasOwnProperty.call(message,"lazy"))writer.uint32(40).bool(message.lazy);if(message.jstype!=null&&Object.hasOwnProperty.call(message,"jstype"))writer.uint32(48).int32(message.jstype);if(message.weak!=null&&Object.hasOwnProperty.call(message,"weak"))writer.uint32(80).bool(message.weak);if(message.unverifiedLazy!=null&&Object.hasOwnProperty.call(message,"unverifiedLazy"))writer.uint32(120).bool(message.unverifiedLazy);if(message.debugRedact!=null&&Object.hasOwnProperty.call(message,"debugRedact"))writer.uint32(128).bool(message.debugRedact);if(message.retention!=null&&Object.hasOwnProperty.call(message,"retention"))writer.uint32(136).int32(message.retention);if(message.targets!=null&&message.targets.length)for(var i=0;i<message.targets.length;++i)writer.uint32(152).int32(message.targets[i]);if(message.editionDefaults!=null&&message.editionDefaults.length)for(var i=0;i<message.editionDefaults.length;++i)$root.google.protobuf.FieldOptions.EditionDefault.encode(message.editionDefaults[i],writer.uint32(162).fork()).ldelim();if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(170).fork()).ldelim();if(message.featureSupport!=null&&Object.hasOwnProperty.call(message,"featureSupport"))$root.google.protobuf.FieldOptions.FeatureSupport.encode(message.featureSupport,writer.uint32(178).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();if(message[".google.api.fieldBehavior"]!=null&&message[".google.api.fieldBehavior"].length)for(var i=0;i<message[".google.api.fieldBehavior"].length;++i)writer.uint32(8416).int32(message[".google.api.fieldBehavior"][i]);return writer};FieldOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FieldOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.ctype=reader.int32();break}case 2:{message.packed=reader.bool();break}case 6:{message.jstype=reader.int32();break}case 5:{message.lazy=reader.bool();break}case 15:{message.unverifiedLazy=reader.bool();break}case 3:{message.deprecated=reader.bool();break}case 10:{message.weak=reader.bool();break}case 16:{message.debugRedact=reader.bool();break}case 17:{message.retention=reader.int32();break}case 19:{if(!(message.targets&&message.targets.length))message.targets=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.targets.push(reader.int32())}else message.targets.push(reader.int32());break}case 20:{if(!(message.editionDefaults&&message.editionDefaults.length))message.editionDefaults=[];message.editionDefaults.push($root.google.protobuf.FieldOptions.EditionDefault.decode(reader,reader.uint32(),undefined,long+1));break}case 21:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 22:{message.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 1052:{if(!(message[".google.api.fieldBehavior"]&&message[".google.api.fieldBehavior"].length))message[".google.api.fieldBehavior"]=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message[".google.api.fieldBehavior"].push(reader.int32())}else message[".google.api.fieldBehavior"].push(reader.int32());break}default:reader.skipType(tag&7,long);break}}return message};FieldOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.ctype!=null&&message.hasOwnProperty("ctype"))switch(message.ctype){default:return"ctype: enum value expected";case 0:case 1:case 2:break}if(message.packed!=null&&message.hasOwnProperty("packed"))if(typeof message.packed!=="boolean")return"packed: boolean expected";if(message.jstype!=null&&message.hasOwnProperty("jstype"))switch(message.jstype){default:return"jstype: enum value expected";case 0:case 1:case 2:break}if(message.lazy!=null&&message.hasOwnProperty("lazy"))if(typeof message.lazy!=="boolean")return"lazy: boolean expected";if(message.unverifiedLazy!=null&&message.hasOwnProperty("unverifiedLazy"))if(typeof message.unverifiedLazy!=="boolean")return"unverifiedLazy: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.weak!=null&&message.hasOwnProperty("weak"))if(typeof message.weak!=="boolean")return"weak: boolean expected";if(message.debugRedact!=null&&message.hasOwnProperty("debugRedact"))if(typeof message.debugRedact!=="boolean")return"debugRedact: boolean expected";if(message.retention!=null&&message.hasOwnProperty("retention"))switch(message.retention){default:return"retention: enum value expected";case 0:case 1:case 2:break}if(message.targets!=null&&message.hasOwnProperty("targets")){if(!Array.isArray(message.targets))return"targets: array expected";for(var i=0;i<message.targets.length;++i)switch(message.targets[i]){default:return"targets: enum value[] expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:break}}if(message.editionDefaults!=null&&message.hasOwnProperty("editionDefaults")){if(!Array.isArray(message.editionDefaults))return"editionDefaults: array expected";for(var i=0;i<message.editionDefaults.length;++i){var error=$root.google.protobuf.FieldOptions.EditionDefault.verify(message.editionDefaults[i],long+1);if(error)return"editionDefaults."+error}}if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.featureSupport!=null&&message.hasOwnProperty("featureSupport")){var error=$root.google.protobuf.FieldOptions.FeatureSupport.verify(message.featureSupport,long+1);if(error)return"featureSupport."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}if(message[".google.api.fieldBehavior"]!=null&&message.hasOwnProperty(".google.api.fieldBehavior")){if(!Array.isArray(message[".google.api.fieldBehavior"]))return".google.api.fieldBehavior: array expected";for(var i=0;i<message[".google.api.fieldBehavior"].length;++i)switch(message[".google.api.fieldBehavior"][i]){default:return".google.api.fieldBehavior: enum value[] expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:break}}return null};FieldOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldOptions;switch(object.ctype){default:if(typeof object.ctype==="number"){message.ctype=object.ctype;break}break;case"STRING":case 0:message.ctype=0;break;case"CORD":case 1:message.ctype=1;break;case"STRING_PIECE":case 2:message.ctype=2;break}if(object.packed!=null)message.packed=Boolean(object.packed);switch(object.jstype){default:if(typeof object.jstype==="number"){message.jstype=object.jstype;break}break;case"JS_NORMAL":case 0:message.jstype=0;break;case"JS_STRING":case 1:message.jstype=1;break;case"JS_NUMBER":case 2:message.jstype=2;break}if(object.lazy!=null)message.lazy=Boolean(object.lazy);if(object.unverifiedLazy!=null)message.unverifiedLazy=Boolean(object.unverifiedLazy);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.weak!=null)message.weak=Boolean(object.weak);if(object.debugRedact!=null)message.debugRedact=Boolean(object.debugRedact);switch(object.retention){default:if(typeof object.retention==="number"){message.retention=object.retention;break}break;case"RETENTION_UNKNOWN":case 0:message.retention=0;break;case"RETENTION_RUNTIME":case 1:message.retention=1;break;case"RETENTION_SOURCE":case 2:message.retention=2;break}if(object.targets){if(!Array.isArray(object.targets))throw TypeError(".google.protobuf.FieldOptions.targets: array expected");message.targets=[];for(var i=0;i<object.targets.length;++i)switch(object.targets[i]){default:if(typeof object.targets[i]==="number"){message.targets[i]=object.targets[i];break}case"TARGET_TYPE_UNKNOWN":case 0:message.targets[i]=0;break;case"TARGET_TYPE_FILE":case 1:message.targets[i]=1;break;case"TARGET_TYPE_EXTENSION_RANGE":case 2:message.targets[i]=2;break;case"TARGET_TYPE_MESSAGE":case 3:message.targets[i]=3;break;case"TARGET_TYPE_FIELD":case 4:message.targets[i]=4;break;case"TARGET_TYPE_ONEOF":case 5:message.targets[i]=5;break;case"TARGET_TYPE_ENUM":case 6:message.targets[i]=6;break;case"TARGET_TYPE_ENUM_ENTRY":case 7:message.targets[i]=7;break;case"TARGET_TYPE_SERVICE":case 8:message.targets[i]=8;break;case"TARGET_TYPE_METHOD":case 9:message.targets[i]=9;break}}if(object.editionDefaults){if(!Array.isArray(object.editionDefaults))throw TypeError(".google.protobuf.FieldOptions.editionDefaults: array expected");message.editionDefaults=[];for(var i=0;i<object.editionDefaults.length;++i){if(typeof object.editionDefaults[i]!=="object")throw TypeError(".google.protobuf.FieldOptions.editionDefaults: object expected");message.editionDefaults[i]=$root.google.protobuf.FieldOptions.EditionDefault.fromObject(object.editionDefaults[i],long+1)}}if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.FieldOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.featureSupport!=null){if(typeof object.featureSupport!=="object")throw TypeError(".google.protobuf.FieldOptions.featureSupport: object expected");message.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.fromObject(object.featureSupport,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.FieldOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.FieldOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}if(object[".google.api.fieldBehavior"]){if(!Array.isArray(object[".google.api.fieldBehavior"]))throw TypeError(".google.protobuf.FieldOptions..google.api.fieldBehavior: array expected");message[".google.api.fieldBehavior"]=[];for(var i=0;i<object[".google.api.fieldBehavior"].length;++i)switch(object[".google.api.fieldBehavior"][i]){default:if(typeof object[".google.api.fieldBehavior"][i]==="number"){message[".google.api.fieldBehavior"][i]=object[".google.api.fieldBehavior"][i];break}case"FIELD_BEHAVIOR_UNSPECIFIED":case 0:message[".google.api.fieldBehavior"][i]=0;break;case"OPTIONAL":case 1:message[".google.api.fieldBehavior"][i]=1;break;case"REQUIRED":case 2:message[".google.api.fieldBehavior"][i]=2;break;case"OUTPUT_ONLY":case 3:message[".google.api.fieldBehavior"][i]=3;break;case"INPUT_ONLY":case 4:message[".google.api.fieldBehavior"][i]=4;break;case"IMMUTABLE":case 5:message[".google.api.fieldBehavior"][i]=5;break;case"UNORDERED_LIST":case 6:message[".google.api.fieldBehavior"][i]=6;break;case"NON_EMPTY_DEFAULT":case 7:message[".google.api.fieldBehavior"][i]=7;break;case"IDENTIFIER":case 8:message[".google.api.fieldBehavior"][i]=8;break}}return message};FieldOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.targets=[];object.editionDefaults=[];object.uninterpretedOption=[];object[".google.api.fieldBehavior"]=[]}if(options.defaults){object.ctype=options.enums===String?"STRING":0;object.packed=false;object.deprecated=false;object.lazy=false;object.jstype=options.enums===String?"JS_NORMAL":0;object.weak=false;object.unverifiedLazy=false;object.debugRedact=false;object.retention=options.enums===String?"RETENTION_UNKNOWN":0;object.features=null;object.featureSupport=null}if(message.ctype!=null&&message.hasOwnProperty("ctype"))object.ctype=options.enums===String?$root.google.protobuf.FieldOptions.CType[message.ctype]===undefined?message.ctype:$root.google.protobuf.FieldOptions.CType[message.ctype]:message.ctype;if(message.packed!=null&&message.hasOwnProperty("packed"))object.packed=message.packed;if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.lazy!=null&&message.hasOwnProperty("lazy"))object.lazy=message.lazy;if(message.jstype!=null&&message.hasOwnProperty("jstype"))object.jstype=options.enums===String?$root.google.protobuf.FieldOptions.JSType[message.jstype]===undefined?message.jstype:$root.google.protobuf.FieldOptions.JSType[message.jstype]:message.jstype;if(message.weak!=null&&message.hasOwnProperty("weak"))object.weak=message.weak;if(message.unverifiedLazy!=null&&message.hasOwnProperty("unverifiedLazy"))object.unverifiedLazy=message.unverifiedLazy;if(message.debugRedact!=null&&message.hasOwnProperty("debugRedact"))object.debugRedact=message.debugRedact;if(message.retention!=null&&message.hasOwnProperty("retention"))object.retention=options.enums===String?$root.google.protobuf.FieldOptions.OptionRetention[message.retention]===undefined?message.retention:$root.google.protobuf.FieldOptions.OptionRetention[message.retention]:message.retention;if(message.targets&&message.targets.length){object.targets=[];for(var j=0;j<message.targets.length;++j)object.targets[j]=options.enums===String?$root.google.protobuf.FieldOptions.OptionTargetType[message.targets[j]]===undefined?message.targets[j]:$root.google.protobuf.FieldOptions.OptionTargetType[message.targets[j]]:message.targets[j]}if(message.editionDefaults&&message.editionDefaults.length){object.editionDefaults=[];for(var j=0;j<message.editionDefaults.length;++j)object.editionDefaults[j]=$root.google.protobuf.FieldOptions.EditionDefault.toObject(message.editionDefaults[j],options)}if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.featureSupport!=null&&message.hasOwnProperty("featureSupport"))object.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.toObject(message.featureSupport,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}if(message[".google.api.fieldBehavior"]&&message[".google.api.fieldBehavior"].length){object[".google.api.fieldBehavior"]=[];for(var j=0;j<message[".google.api.fieldBehavior"].length;++j)object[".google.api.fieldBehavior"][j]=options.enums===String?$root.google.api.FieldBehavior[message[".google.api.fieldBehavior"][j]]===undefined?message[".google.api.fieldBehavior"][j]:$root.google.api.FieldBehavior[message[".google.api.fieldBehavior"][j]]:message[".google.api.fieldBehavior"][j]}return object};FieldOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldOptions"};FieldOptions.CType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="STRING"]=0;values[valuesById[1]="CORD"]=1;values[valuesById[2]="STRING_PIECE"]=2;return values}();FieldOptions.JSType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="JS_NORMAL"]=0;values[valuesById[1]="JS_STRING"]=1;values[valuesById[2]="JS_NUMBER"]=2;return values}();FieldOptions.OptionRetention=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="RETENTION_UNKNOWN"]=0;values[valuesById[1]="RETENTION_RUNTIME"]=1;values[valuesById[2]="RETENTION_SOURCE"]=2;return values}();FieldOptions.OptionTargetType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TARGET_TYPE_UNKNOWN"]=0;values[valuesById[1]="TARGET_TYPE_FILE"]=1;values[valuesById[2]="TARGET_TYPE_EXTENSION_RANGE"]=2;values[valuesById[3]="TARGET_TYPE_MESSAGE"]=3;values[valuesById[4]="TARGET_TYPE_FIELD"]=4;values[valuesById[5]="TARGET_TYPE_ONEOF"]=5;values[valuesById[6]="TARGET_TYPE_ENUM"]=6;values[valuesById[7]="TARGET_TYPE_ENUM_ENTRY"]=7;values[valuesById[8]="TARGET_TYPE_SERVICE"]=8;values[valuesById[9]="TARGET_TYPE_METHOD"]=9;return values}();FieldOptions.EditionDefault=function(){function EditionDefault(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}EditionDefault.prototype.edition=0;EditionDefault.prototype.value="";EditionDefault.create=function create(properties){return new EditionDefault(properties)};EditionDefault.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(18).string(message.value);if(message.edition!=null&&Object.hasOwnProperty.call(message,"edition"))writer.uint32(24).int32(message.edition);return writer};EditionDefault.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};EditionDefault.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldOptions.EditionDefault;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 3:{message.edition=reader.int32();break}case 2:{message.value=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};EditionDefault.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EditionDefault.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.edition!=null&&message.hasOwnProperty("edition"))switch(message.edition){default:return"edition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isString(message.value))return"value: string expected";return null};EditionDefault.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldOptions.EditionDefault)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldOptions.EditionDefault;switch(object.edition){default:if(typeof object.edition==="number"){message.edition=object.edition;break}break;case"EDITION_UNKNOWN":case 0:message.edition=0;break;case"EDITION_LEGACY":case 900:message.edition=900;break;case"EDITION_PROTO2":case 998:message.edition=998;break;case"EDITION_PROTO3":case 999:message.edition=999;break;case"EDITION_2023":case 1e3:message.edition=1e3;break;case"EDITION_2024":case 1001:message.edition=1001;break;case"EDITION_2026":case 1002:message.edition=1002;break;case"EDITION_UNSTABLE":case 9999:message.edition=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.edition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.edition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.edition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.edition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.edition=99999;break;case"EDITION_MAX":case 2147483647:message.edition=2147483647;break}if(object.value!=null)message.value=String(object.value);return message};EditionDefault.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.value="";object.edition=options.enums===String?"EDITION_UNKNOWN":0}if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;if(message.edition!=null&&message.hasOwnProperty("edition"))object.edition=options.enums===String?$root.google.protobuf.Edition[message.edition]===undefined?message.edition:$root.google.protobuf.Edition[message.edition]:message.edition;return object};EditionDefault.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EditionDefault.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldOptions.EditionDefault"};return EditionDefault}();FieldOptions.FeatureSupport=function(){function FeatureSupport(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FeatureSupport.prototype.editionIntroduced=0;FeatureSupport.prototype.editionDeprecated=0;FeatureSupport.prototype.deprecationWarning="";FeatureSupport.prototype.editionRemoved=0;FeatureSupport.prototype.removalError="";FeatureSupport.create=function create(properties){return new FeatureSupport(properties)};FeatureSupport.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.editionIntroduced!=null&&Object.hasOwnProperty.call(message,"editionIntroduced"))writer.uint32(8).int32(message.editionIntroduced);if(message.editionDeprecated!=null&&Object.hasOwnProperty.call(message,"editionDeprecated"))writer.uint32(16).int32(message.editionDeprecated);if(message.deprecationWarning!=null&&Object.hasOwnProperty.call(message,"deprecationWarning"))writer.uint32(26).string(message.deprecationWarning);if(message.editionRemoved!=null&&Object.hasOwnProperty.call(message,"editionRemoved"))writer.uint32(32).int32(message.editionRemoved);if(message.removalError!=null&&Object.hasOwnProperty.call(message,"removalError"))writer.uint32(42).string(message.removalError);return writer};FeatureSupport.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FeatureSupport.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldOptions.FeatureSupport;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.editionIntroduced=reader.int32();break}case 2:{message.editionDeprecated=reader.int32();break}case 3:{message.deprecationWarning=reader.string();break}case 4:{message.editionRemoved=reader.int32();break}case 5:{message.removalError=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};FeatureSupport.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSupport.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.editionIntroduced!=null&&message.hasOwnProperty("editionIntroduced"))switch(message.editionIntroduced){default:return"editionIntroduced: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.editionDeprecated!=null&&message.hasOwnProperty("editionDeprecated"))switch(message.editionDeprecated){default:return"editionDeprecated: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.deprecationWarning!=null&&message.hasOwnProperty("deprecationWarning"))if(!$util.isString(message.deprecationWarning))return"deprecationWarning: string expected";if(message.editionRemoved!=null&&message.hasOwnProperty("editionRemoved"))switch(message.editionRemoved){default:return"editionRemoved: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.removalError!=null&&message.hasOwnProperty("removalError"))if(!$util.isString(message.removalError))return"removalError: string expected";return null};FeatureSupport.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldOptions.FeatureSupport)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldOptions.FeatureSupport;switch(object.editionIntroduced){default:if(typeof object.editionIntroduced==="number"){message.editionIntroduced=object.editionIntroduced;break}break;case"EDITION_UNKNOWN":case 0:message.editionIntroduced=0;break;case"EDITION_LEGACY":case 900:message.editionIntroduced=900;break;case"EDITION_PROTO2":case 998:message.editionIntroduced=998;break;case"EDITION_PROTO3":case 999:message.editionIntroduced=999;break;case"EDITION_2023":case 1e3:message.editionIntroduced=1e3;break;case"EDITION_2024":case 1001:message.editionIntroduced=1001;break;case"EDITION_2026":case 1002:message.editionIntroduced=1002;break;case"EDITION_UNSTABLE":case 9999:message.editionIntroduced=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.editionIntroduced=1;break;case"EDITION_2_TEST_ONLY":case 2:message.editionIntroduced=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.editionIntroduced=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.editionIntroduced=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.editionIntroduced=99999;break;case"EDITION_MAX":case 2147483647:message.editionIntroduced=2147483647;break}switch(object.editionDeprecated){default:if(typeof object.editionDeprecated==="number"){message.editionDeprecated=object.editionDeprecated;break}break;case"EDITION_UNKNOWN":case 0:message.editionDeprecated=0;break;case"EDITION_LEGACY":case 900:message.editionDeprecated=900;break;case"EDITION_PROTO2":case 998:message.editionDeprecated=998;break;case"EDITION_PROTO3":case 999:message.editionDeprecated=999;break;case"EDITION_2023":case 1e3:message.editionDeprecated=1e3;break;case"EDITION_2024":case 1001:message.editionDeprecated=1001;break;case"EDITION_2026":case 1002:message.editionDeprecated=1002;break;case"EDITION_UNSTABLE":case 9999:message.editionDeprecated=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.editionDeprecated=1;break;case"EDITION_2_TEST_ONLY":case 2:message.editionDeprecated=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.editionDeprecated=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.editionDeprecated=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.editionDeprecated=99999;break;case"EDITION_MAX":case 2147483647:message.editionDeprecated=2147483647;break}if(object.deprecationWarning!=null)message.deprecationWarning=String(object.deprecationWarning);switch(object.editionRemoved){default:if(typeof object.editionRemoved==="number"){message.editionRemoved=object.editionRemoved;break}break;case"EDITION_UNKNOWN":case 0:message.editionRemoved=0;break;case"EDITION_LEGACY":case 900:message.editionRemoved=900;break;case"EDITION_PROTO2":case 998:message.editionRemoved=998;break;case"EDITION_PROTO3":case 999:message.editionRemoved=999;break;case"EDITION_2023":case 1e3:message.editionRemoved=1e3;break;case"EDITION_2024":case 1001:message.editionRemoved=1001;break;case"EDITION_2026":case 1002:message.editionRemoved=1002;break;case"EDITION_UNSTABLE":case 9999:message.editionRemoved=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.editionRemoved=1;break;case"EDITION_2_TEST_ONLY":case 2:message.editionRemoved=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.editionRemoved=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.editionRemoved=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.editionRemoved=99999;break;case"EDITION_MAX":case 2147483647:message.editionRemoved=2147483647;break}if(object.removalError!=null)message.removalError=String(object.removalError);return message};FeatureSupport.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.editionIntroduced=options.enums===String?"EDITION_UNKNOWN":0;object.editionDeprecated=options.enums===String?"EDITION_UNKNOWN":0;object.deprecationWarning="";object.editionRemoved=options.enums===String?"EDITION_UNKNOWN":0;object.removalError=""}if(message.editionIntroduced!=null&&message.hasOwnProperty("editionIntroduced"))object.editionIntroduced=options.enums===String?$root.google.protobuf.Edition[message.editionIntroduced]===undefined?message.editionIntroduced:$root.google.protobuf.Edition[message.editionIntroduced]:message.editionIntroduced;if(message.editionDeprecated!=null&&message.hasOwnProperty("editionDeprecated"))object.editionDeprecated=options.enums===String?$root.google.protobuf.Edition[message.editionDeprecated]===undefined?message.editionDeprecated:$root.google.protobuf.Edition[message.editionDeprecated]:message.editionDeprecated;if(message.deprecationWarning!=null&&message.hasOwnProperty("deprecationWarning"))object.deprecationWarning=message.deprecationWarning;if(message.editionRemoved!=null&&message.hasOwnProperty("editionRemoved"))object.editionRemoved=options.enums===String?$root.google.protobuf.Edition[message.editionRemoved]===undefined?message.editionRemoved:$root.google.protobuf.Edition[message.editionRemoved]:message.editionRemoved;if(message.removalError!=null&&message.hasOwnProperty("removalError"))object.removalError=message.removalError;return object};FeatureSupport.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSupport.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldOptions.FeatureSupport"};return FeatureSupport}();return FieldOptions}();protobuf.OneofOptions=function(){function OneofOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}OneofOptions.prototype.features=null;OneofOptions.prototype.uninterpretedOption=$util.emptyArray;OneofOptions.create=function create(properties){return new OneofOptions(properties)};OneofOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(10).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();return writer};OneofOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};OneofOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.OneofOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};OneofOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};OneofOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}return null};OneofOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.OneofOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.OneofOptions;if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.OneofOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}return message};OneofOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.uninterpretedOption=[];if(options.defaults)object.features=null;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}return object};OneofOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};OneofOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.OneofOptions"};return OneofOptions}();protobuf.EnumOptions=function(){function EnumOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}EnumOptions.prototype.allowAlias=false;EnumOptions.prototype.deprecated=false;EnumOptions.prototype.deprecatedLegacyJsonFieldConflicts=false;EnumOptions.prototype.features=null;EnumOptions.prototype.uninterpretedOption=$util.emptyArray;EnumOptions.create=function create(properties){return new EnumOptions(properties)};EnumOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.allowAlias!=null&&Object.hasOwnProperty.call(message,"allowAlias"))writer.uint32(16).bool(message.allowAlias);if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(24).bool(message.deprecated);if(message.deprecatedLegacyJsonFieldConflicts!=null&&Object.hasOwnProperty.call(message,"deprecatedLegacyJsonFieldConflicts"))writer.uint32(48).bool(message.deprecatedLegacyJsonFieldConflicts);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(58).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();return writer};EnumOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};EnumOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 2:{message.allowAlias=reader.bool();break}case 3:{message.deprecated=reader.bool();break}case 6:{message.deprecatedLegacyJsonFieldConflicts=reader.bool();break}case 7:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};EnumOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.allowAlias!=null&&message.hasOwnProperty("allowAlias"))if(typeof message.allowAlias!=="boolean")return"allowAlias: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.deprecatedLegacyJsonFieldConflicts!=null&&message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts"))if(typeof message.deprecatedLegacyJsonFieldConflicts!=="boolean")return"deprecatedLegacyJsonFieldConflicts: boolean expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}return null};EnumOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumOptions;if(object.allowAlias!=null)message.allowAlias=Boolean(object.allowAlias);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.deprecatedLegacyJsonFieldConflicts!=null)message.deprecatedLegacyJsonFieldConflicts=Boolean(object.deprecatedLegacyJsonFieldConflicts);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.EnumOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}return message};EnumOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.uninterpretedOption=[];if(options.defaults){object.allowAlias=false;object.deprecated=false;object.deprecatedLegacyJsonFieldConflicts=false;object.features=null}if(message.allowAlias!=null&&message.hasOwnProperty("allowAlias"))object.allowAlias=message.allowAlias;if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.deprecatedLegacyJsonFieldConflicts!=null&&message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts"))object.deprecatedLegacyJsonFieldConflicts=message.deprecatedLegacyJsonFieldConflicts;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}return object};EnumOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumOptions"};return EnumOptions}();protobuf.EnumValueOptions=function(){function EnumValueOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}EnumValueOptions.prototype.deprecated=false;EnumValueOptions.prototype.features=null;EnumValueOptions.prototype.debugRedact=false;EnumValueOptions.prototype.featureSupport=null;EnumValueOptions.prototype.uninterpretedOption=$util.emptyArray;EnumValueOptions.create=function create(properties){return new EnumValueOptions(properties)};EnumValueOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(8).bool(message.deprecated);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(18).fork()).ldelim();if(message.debugRedact!=null&&Object.hasOwnProperty.call(message,"debugRedact"))writer.uint32(24).bool(message.debugRedact);if(message.featureSupport!=null&&Object.hasOwnProperty.call(message,"featureSupport"))$root.google.protobuf.FieldOptions.FeatureSupport.encode(message.featureSupport,writer.uint32(34).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();return writer};EnumValueOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};EnumValueOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumValueOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.deprecated=reader.bool();break}case 2:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.debugRedact=reader.bool();break}case 4:{message.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};EnumValueOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumValueOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.debugRedact!=null&&message.hasOwnProperty("debugRedact"))if(typeof message.debugRedact!=="boolean")return"debugRedact: boolean expected";if(message.featureSupport!=null&&message.hasOwnProperty("featureSupport")){var error=$root.google.protobuf.FieldOptions.FeatureSupport.verify(message.featureSupport,long+1);if(error)return"featureSupport."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}return null};EnumValueOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumValueOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumValueOptions;if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.EnumValueOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.debugRedact!=null)message.debugRedact=Boolean(object.debugRedact);if(object.featureSupport!=null){if(typeof object.featureSupport!=="object")throw TypeError(".google.protobuf.EnumValueOptions.featureSupport: object expected");message.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.fromObject(object.featureSupport,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}return message};EnumValueOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.uninterpretedOption=[];if(options.defaults){object.deprecated=false;object.features=null;object.debugRedact=false;object.featureSupport=null}if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.debugRedact!=null&&message.hasOwnProperty("debugRedact"))object.debugRedact=message.debugRedact;if(message.featureSupport!=null&&message.hasOwnProperty("featureSupport"))object.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.toObject(message.featureSupport,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}return object};EnumValueOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumValueOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumValueOptions"};return EnumValueOptions}();protobuf.ServiceOptions=function(){function ServiceOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ServiceOptions.prototype.features=null;ServiceOptions.prototype.deprecated=false;ServiceOptions.prototype.uninterpretedOption=$util.emptyArray;ServiceOptions.prototype[".google.api.defaultHost"]="";ServiceOptions.prototype[".google.api.oauthScopes"]="";ServiceOptions.prototype[".google.api.apiVersion"]="";ServiceOptions.create=function create(properties){return new ServiceOptions(properties)};ServiceOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(264).bool(message.deprecated);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(274).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();if(message[".google.api.defaultHost"]!=null&&Object.hasOwnProperty.call(message,".google.api.defaultHost"))writer.uint32(8394).string(message[".google.api.defaultHost"]);if(message[".google.api.oauthScopes"]!=null&&Object.hasOwnProperty.call(message,".google.api.oauthScopes"))writer.uint32(8402).string(message[".google.api.oauthScopes"]);if(message[".google.api.apiVersion"]!=null&&Object.hasOwnProperty.call(message,".google.api.apiVersion"))writer.uint32(4200000010).string(message[".google.api.apiVersion"]);return writer};ServiceOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ServiceOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ServiceOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 34:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 33:{message.deprecated=reader.bool();break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 1049:{message[".google.api.defaultHost"]=reader.string();break}case 1050:{message[".google.api.oauthScopes"]=reader.string();break}case 525000001:{message[".google.api.apiVersion"]=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ServiceOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ServiceOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}if(message[".google.api.defaultHost"]!=null&&message.hasOwnProperty(".google.api.defaultHost"))if(!$util.isString(message[".google.api.defaultHost"]))return".google.api.defaultHost: string expected";if(message[".google.api.oauthScopes"]!=null&&message.hasOwnProperty(".google.api.oauthScopes"))if(!$util.isString(message[".google.api.oauthScopes"]))return".google.api.oauthScopes: string expected";if(message[".google.api.apiVersion"]!=null&&message.hasOwnProperty(".google.api.apiVersion"))if(!$util.isString(message[".google.api.apiVersion"]))return".google.api.apiVersion: string expected";return null};ServiceOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.ServiceOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ServiceOptions;if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.ServiceOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}if(object[".google.api.defaultHost"]!=null)message[".google.api.defaultHost"]=String(object[".google.api.defaultHost"]);if(object[".google.api.oauthScopes"]!=null)message[".google.api.oauthScopes"]=String(object[".google.api.oauthScopes"]);if(object[".google.api.apiVersion"]!=null)message[".google.api.apiVersion"]=String(object[".google.api.apiVersion"]);return message};ServiceOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.uninterpretedOption=[];if(options.defaults){object.deprecated=false;object.features=null;object[".google.api.defaultHost"]="";object[".google.api.oauthScopes"]="";object[".google.api.apiVersion"]=""}if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}if(message[".google.api.defaultHost"]!=null&&message.hasOwnProperty(".google.api.defaultHost"))object[".google.api.defaultHost"]=message[".google.api.defaultHost"];if(message[".google.api.oauthScopes"]!=null&&message.hasOwnProperty(".google.api.oauthScopes"))object[".google.api.oauthScopes"]=message[".google.api.oauthScopes"];if(message[".google.api.apiVersion"]!=null&&message.hasOwnProperty(".google.api.apiVersion"))object[".google.api.apiVersion"]=message[".google.api.apiVersion"];return object};ServiceOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ServiceOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.ServiceOptions"};return ServiceOptions}();protobuf.MethodOptions=function(){function MethodOptions(properties){this.uninterpretedOption=[];this[".google.api.methodSignature"]=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}MethodOptions.prototype.deprecated=false;MethodOptions.prototype.idempotencyLevel=0;MethodOptions.prototype.features=null;MethodOptions.prototype.uninterpretedOption=$util.emptyArray;MethodOptions.prototype[".google.api.http"]=null;MethodOptions.prototype[".google.api.methodSignature"]=$util.emptyArray;MethodOptions.create=function create(properties){return new MethodOptions(properties)};MethodOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(264).bool(message.deprecated);if(message.idempotencyLevel!=null&&Object.hasOwnProperty.call(message,"idempotencyLevel"))writer.uint32(272).int32(message.idempotencyLevel);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(282).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();if(message[".google.api.methodSignature"]!=null&&message[".google.api.methodSignature"].length)for(var i=0;i<message[".google.api.methodSignature"].length;++i)writer.uint32(8410).string(message[".google.api.methodSignature"][i]);if(message[".google.api.http"]!=null&&Object.hasOwnProperty.call(message,".google.api.http"))$root.google.api.HttpRule.encode(message[".google.api.http"],writer.uint32(578365826).fork()).ldelim();return writer};MethodOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};MethodOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.MethodOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 33:{message.deprecated=reader.bool();break}case 34:{message.idempotencyLevel=reader.int32();break}case 35:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 72295728:{message[".google.api.http"]=$root.google.api.HttpRule.decode(reader,reader.uint32(),undefined,long+1);break}case 1051:{if(!(message[".google.api.methodSignature"]&&message[".google.api.methodSignature"].length))message[".google.api.methodSignature"]=[];message[".google.api.methodSignature"].push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};MethodOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MethodOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.idempotencyLevel!=null&&message.hasOwnProperty("idempotencyLevel"))switch(message.idempotencyLevel){default:return"idempotencyLevel: enum value expected";case 0:case 1:case 2:break}if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}if(message[".google.api.http"]!=null&&message.hasOwnProperty(".google.api.http")){var error=$root.google.api.HttpRule.verify(message[".google.api.http"],long+1);if(error)return".google.api.http."+error}if(message[".google.api.methodSignature"]!=null&&message.hasOwnProperty(".google.api.methodSignature")){if(!Array.isArray(message[".google.api.methodSignature"]))return".google.api.methodSignature: array expected";for(var i=0;i<message[".google.api.methodSignature"].length;++i)if(!$util.isString(message[".google.api.methodSignature"][i]))return".google.api.methodSignature: string[] expected"}return null};MethodOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.MethodOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.MethodOptions;if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);switch(object.idempotencyLevel){default:if(typeof object.idempotencyLevel==="number"){message.idempotencyLevel=object.idempotencyLevel;break}break;case"IDEMPOTENCY_UNKNOWN":case 0:message.idempotencyLevel=0;break;case"NO_SIDE_EFFECTS":case 1:message.idempotencyLevel=1;break;case"IDEMPOTENT":case 2:message.idempotencyLevel=2;break}if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.MethodOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}if(object[".google.api.http"]!=null){if(typeof object[".google.api.http"]!=="object")throw TypeError(".google.protobuf.MethodOptions..google.api.http: object expected");message[".google.api.http"]=$root.google.api.HttpRule.fromObject(object[".google.api.http"],long+1)}if(object[".google.api.methodSignature"]){if(!Array.isArray(object[".google.api.methodSignature"]))throw TypeError(".google.protobuf.MethodOptions..google.api.methodSignature: array expected");message[".google.api.methodSignature"]=[];for(var i=0;i<object[".google.api.methodSignature"].length;++i)message[".google.api.methodSignature"][i]=String(object[".google.api.methodSignature"][i])}return message};MethodOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.uninterpretedOption=[];object[".google.api.methodSignature"]=[]}if(options.defaults){object.deprecated=false;object.idempotencyLevel=options.enums===String?"IDEMPOTENCY_UNKNOWN":0;object.features=null;object[".google.api.http"]=null}if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.idempotencyLevel!=null&&message.hasOwnProperty("idempotencyLevel"))object.idempotencyLevel=options.enums===String?$root.google.protobuf.MethodOptions.IdempotencyLevel[message.idempotencyLevel]===undefined?message.idempotencyLevel:$root.google.protobuf.MethodOptions.IdempotencyLevel[message.idempotencyLevel]:message.idempotencyLevel;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}if(message[".google.api.methodSignature"]&&message[".google.api.methodSignature"].length){object[".google.api.methodSignature"]=[];for(var j=0;j<message[".google.api.methodSignature"].length;++j)object[".google.api.methodSignature"][j]=message[".google.api.methodSignature"][j]}if(message[".google.api.http"]!=null&&message.hasOwnProperty(".google.api.http"))object[".google.api.http"]=$root.google.api.HttpRule.toObject(message[".google.api.http"],options);return object};MethodOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};MethodOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.MethodOptions"};MethodOptions.IdempotencyLevel=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="IDEMPOTENCY_UNKNOWN"]=0;values[valuesById[1]="NO_SIDE_EFFECTS"]=1;values[valuesById[2]="IDEMPOTENT"]=2;return values}();return MethodOptions}();protobuf.UninterpretedOption=function(){function UninterpretedOption(properties){this.name=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}UninterpretedOption.prototype.name=$util.emptyArray;UninterpretedOption.prototype.identifierValue="";UninterpretedOption.prototype.positiveIntValue=$util.Long?$util.Long.fromBits(0,0,true):0;UninterpretedOption.prototype.negativeIntValue=$util.Long?$util.Long.fromBits(0,0,false):0;UninterpretedOption.prototype.doubleValue=0;UninterpretedOption.prototype.stringValue=$util.newBuffer([]);UninterpretedOption.prototype.aggregateValue="";UninterpretedOption.create=function create(properties){return new UninterpretedOption(properties)};UninterpretedOption.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&message.name.length)for(var i=0;i<message.name.length;++i)$root.google.protobuf.UninterpretedOption.NamePart.encode(message.name[i],writer.uint32(18).fork()).ldelim();if(message.identifierValue!=null&&Object.hasOwnProperty.call(message,"identifierValue"))writer.uint32(26).string(message.identifierValue);if(message.positiveIntValue!=null&&Object.hasOwnProperty.call(message,"positiveIntValue"))writer.uint32(32).uint64(message.positiveIntValue);if(message.negativeIntValue!=null&&Object.hasOwnProperty.call(message,"negativeIntValue"))writer.uint32(40).int64(message.negativeIntValue);if(message.doubleValue!=null&&Object.hasOwnProperty.call(message,"doubleValue"))writer.uint32(49).double(message.doubleValue);if(message.stringValue!=null&&Object.hasOwnProperty.call(message,"stringValue"))writer.uint32(58).bytes(message.stringValue);if(message.aggregateValue!=null&&Object.hasOwnProperty.call(message,"aggregateValue"))writer.uint32(66).string(message.aggregateValue);return writer};UninterpretedOption.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};UninterpretedOption.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UninterpretedOption;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 2:{if(!(message.name&&message.name.length))message.name=[];message.name.push($root.google.protobuf.UninterpretedOption.NamePart.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.identifierValue=reader.string();break}case 4:{message.positiveIntValue=reader.uint64();break}case 5:{message.negativeIntValue=reader.int64();break}case 6:{message.doubleValue=reader.double();break}case 7:{message.stringValue=reader.bytes();break}case 8:{message.aggregateValue=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};UninterpretedOption.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UninterpretedOption.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name")){if(!Array.isArray(message.name))return"name: array expected";for(var i=0;i<message.name.length;++i){var error=$root.google.protobuf.UninterpretedOption.NamePart.verify(message.name[i],long+1);if(error)return"name."+error}}if(message.identifierValue!=null&&message.hasOwnProperty("identifierValue"))if(!$util.isString(message.identifierValue))return"identifierValue: string expected";if(message.positiveIntValue!=null&&message.hasOwnProperty("positiveIntValue"))if(!$util.isInteger(message.positiveIntValue)&&!(message.positiveIntValue&&$util.isInteger(message.positiveIntValue.low)&&$util.isInteger(message.positiveIntValue.high)))return"positiveIntValue: integer|Long expected";if(message.negativeIntValue!=null&&message.hasOwnProperty("negativeIntValue"))if(!$util.isInteger(message.negativeIntValue)&&!(message.negativeIntValue&&$util.isInteger(message.negativeIntValue.low)&&$util.isInteger(message.negativeIntValue.high)))return"negativeIntValue: integer|Long expected";if(message.doubleValue!=null&&message.hasOwnProperty("doubleValue"))if(typeof message.doubleValue!=="number")return"doubleValue: number expected";if(message.stringValue!=null&&message.hasOwnProperty("stringValue"))if(!(message.stringValue&&typeof message.stringValue.length==="number"||$util.isString(message.stringValue)))return"stringValue: buffer expected";if(message.aggregateValue!=null&&message.hasOwnProperty("aggregateValue"))if(!$util.isString(message.aggregateValue))return"aggregateValue: string expected";return null};UninterpretedOption.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UninterpretedOption)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UninterpretedOption;if(object.name){if(!Array.isArray(object.name))throw TypeError(".google.protobuf.UninterpretedOption.name: array expected");message.name=[];for(var i=0;i<object.name.length;++i){if(typeof object.name[i]!=="object")throw TypeError(".google.protobuf.UninterpretedOption.name: object expected");message.name[i]=$root.google.protobuf.UninterpretedOption.NamePart.fromObject(object.name[i],long+1)}}if(object.identifierValue!=null)message.identifierValue=String(object.identifierValue);if(object.positiveIntValue!=null)if($util.Long)(message.positiveIntValue=$util.Long.fromValue(object.positiveIntValue)).unsigned=true;else if(typeof object.positiveIntValue==="string")message.positiveIntValue=parseInt(object.positiveIntValue,10);else if(typeof object.positiveIntValue==="number")message.positiveIntValue=object.positiveIntValue;else if(typeof object.positiveIntValue==="object")message.positiveIntValue=new $util.LongBits(object.positiveIntValue.low>>>0,object.positiveIntValue.high>>>0).toNumber(true);if(object.negativeIntValue!=null)if($util.Long)(message.negativeIntValue=$util.Long.fromValue(object.negativeIntValue)).unsigned=false;else if(typeof object.negativeIntValue==="string")message.negativeIntValue=parseInt(object.negativeIntValue,10);else if(typeof object.negativeIntValue==="number")message.negativeIntValue=object.negativeIntValue;else if(typeof object.negativeIntValue==="object")message.negativeIntValue=new $util.LongBits(object.negativeIntValue.low>>>0,object.negativeIntValue.high>>>0).toNumber();if(object.doubleValue!=null)message.doubleValue=Number(object.doubleValue);if(object.stringValue!=null)if(typeof object.stringValue==="string")$util.base64.decode(object.stringValue,message.stringValue=$util.newBuffer($util.base64.length(object.stringValue)),0);else if(object.stringValue.length>=0)message.stringValue=object.stringValue;if(object.aggregateValue!=null)message.aggregateValue=String(object.aggregateValue);return message};UninterpretedOption.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.name=[];if(options.defaults){object.identifierValue="";if($util.Long){var long=new $util.Long(0,0,true);object.positiveIntValue=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.positiveIntValue=options.longs===String?"0":0;if($util.Long){var long=new $util.Long(0,0,false);object.negativeIntValue=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.negativeIntValue=options.longs===String?"0":0;object.doubleValue=0;if(options.bytes===String)object.stringValue="";else{object.stringValue=[];if(options.bytes!==Array)object.stringValue=$util.newBuffer(object.stringValue)}object.aggregateValue=""}if(message.name&&message.name.length){object.name=[];for(var j=0;j<message.name.length;++j)object.name[j]=$root.google.protobuf.UninterpretedOption.NamePart.toObject(message.name[j],options)}if(message.identifierValue!=null&&message.hasOwnProperty("identifierValue"))object.identifierValue=message.identifierValue;if(message.positiveIntValue!=null&&message.hasOwnProperty("positiveIntValue"))if(typeof message.positiveIntValue==="number")object.positiveIntValue=options.longs===String?String(message.positiveIntValue):message.positiveIntValue;else object.positiveIntValue=options.longs===String?$util.Long.prototype.toString.call(message.positiveIntValue):options.longs===Number?new $util.LongBits(message.positiveIntValue.low>>>0,message.positiveIntValue.high>>>0).toNumber(true):message.positiveIntValue;if(message.negativeIntValue!=null&&message.hasOwnProperty("negativeIntValue"))if(typeof message.negativeIntValue==="number")object.negativeIntValue=options.longs===String?String(message.negativeIntValue):message.negativeIntValue;else object.negativeIntValue=options.longs===String?$util.Long.prototype.toString.call(message.negativeIntValue):options.longs===Number?new $util.LongBits(message.negativeIntValue.low>>>0,message.negativeIntValue.high>>>0).toNumber():message.negativeIntValue;if(message.doubleValue!=null&&message.hasOwnProperty("doubleValue"))object.doubleValue=options.json&&!isFinite(message.doubleValue)?String(message.doubleValue):message.doubleValue;if(message.stringValue!=null&&message.hasOwnProperty("stringValue"))object.stringValue=options.bytes===String?$util.base64.encode(message.stringValue,0,message.stringValue.length):options.bytes===Array?Array.prototype.slice.call(message.stringValue):message.stringValue;if(message.aggregateValue!=null&&message.hasOwnProperty("aggregateValue"))object.aggregateValue=message.aggregateValue;return object};UninterpretedOption.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UninterpretedOption.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UninterpretedOption"};UninterpretedOption.NamePart=function(){function NamePart(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}NamePart.prototype.namePart="";NamePart.prototype.isExtension=false;NamePart.create=function create(properties){return new NamePart(properties)};NamePart.encode=function encode(message,writer){if(!writer)writer=$Writer.create();writer.uint32(10).string(message.namePart);writer.uint32(16).bool(message.isExtension);return writer};NamePart.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};NamePart.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UninterpretedOption.NamePart;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.namePart=reader.string();break}case 2:{message.isExtension=reader.bool();break}default:reader.skipType(tag&7,long);break}}if(!message.hasOwnProperty("namePart"))throw $util.ProtocolError("missing required 'namePart'",{instance:message});if(!message.hasOwnProperty("isExtension"))throw $util.ProtocolError("missing required 'isExtension'",{instance:message});return message};NamePart.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};NamePart.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(!$util.isString(message.namePart))return"namePart: string expected";if(typeof message.isExtension!=="boolean")return"isExtension: boolean expected";return null};NamePart.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UninterpretedOption.NamePart)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UninterpretedOption.NamePart;if(object.namePart!=null)message.namePart=String(object.namePart);if(object.isExtension!=null)message.isExtension=Boolean(object.isExtension);return message};NamePart.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.namePart="";object.isExtension=false}if(message.namePart!=null&&message.hasOwnProperty("namePart"))object.namePart=message.namePart;if(message.isExtension!=null&&message.hasOwnProperty("isExtension"))object.isExtension=message.isExtension;return object};NamePart.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};NamePart.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UninterpretedOption.NamePart"};return NamePart}();return UninterpretedOption}();protobuf.FeatureSet=function(){function FeatureSet(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FeatureSet.prototype.fieldPresence=0;FeatureSet.prototype.enumType=0;FeatureSet.prototype.repeatedFieldEncoding=0;FeatureSet.prototype.utf8Validation=0;FeatureSet.prototype.messageEncoding=0;FeatureSet.prototype.jsonFormat=0;FeatureSet.prototype.enforceNamingStyle=0;FeatureSet.prototype.defaultSymbolVisibility=0;FeatureSet.prototype.enforceProtoLimits=0;FeatureSet.create=function create(properties){return new FeatureSet(properties)};FeatureSet.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.fieldPresence!=null&&Object.hasOwnProperty.call(message,"fieldPresence"))writer.uint32(8).int32(message.fieldPresence);if(message.enumType!=null&&Object.hasOwnProperty.call(message,"enumType"))writer.uint32(16).int32(message.enumType);if(message.repeatedFieldEncoding!=null&&Object.hasOwnProperty.call(message,"repeatedFieldEncoding"))writer.uint32(24).int32(message.repeatedFieldEncoding);if(message.utf8Validation!=null&&Object.hasOwnProperty.call(message,"utf8Validation"))writer.uint32(32).int32(message.utf8Validation);if(message.messageEncoding!=null&&Object.hasOwnProperty.call(message,"messageEncoding"))writer.uint32(40).int32(message.messageEncoding);if(message.jsonFormat!=null&&Object.hasOwnProperty.call(message,"jsonFormat"))writer.uint32(48).int32(message.jsonFormat);if(message.enforceNamingStyle!=null&&Object.hasOwnProperty.call(message,"enforceNamingStyle"))writer.uint32(56).int32(message.enforceNamingStyle);if(message.defaultSymbolVisibility!=null&&Object.hasOwnProperty.call(message,"defaultSymbolVisibility"))writer.uint32(64).int32(message.defaultSymbolVisibility);if(message.enforceProtoLimits!=null&&Object.hasOwnProperty.call(message,"enforceProtoLimits"))writer.uint32(72).int32(message.enforceProtoLimits);return writer};FeatureSet.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FeatureSet.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSet;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.fieldPresence=reader.int32();break}case 2:{message.enumType=reader.int32();break}case 3:{message.repeatedFieldEncoding=reader.int32();break}case 4:{message.utf8Validation=reader.int32();break}case 5:{message.messageEncoding=reader.int32();break}case 6:{message.jsonFormat=reader.int32();break}case 7:{message.enforceNamingStyle=reader.int32();break}case 8:{message.defaultSymbolVisibility=reader.int32();break}case 9:{message.enforceProtoLimits=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FeatureSet.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSet.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fieldPresence!=null&&message.hasOwnProperty("fieldPresence"))switch(message.fieldPresence){default:return"fieldPresence: enum value expected";case 0:case 1:case 2:case 3:break}if(message.enumType!=null&&message.hasOwnProperty("enumType"))switch(message.enumType){default:return"enumType: enum value expected";case 0:case 1:case 2:break}if(message.repeatedFieldEncoding!=null&&message.hasOwnProperty("repeatedFieldEncoding"))switch(message.repeatedFieldEncoding){default:return"repeatedFieldEncoding: enum value expected";case 0:case 1:case 2:break}if(message.utf8Validation!=null&&message.hasOwnProperty("utf8Validation"))switch(message.utf8Validation){default:return"utf8Validation: enum value expected";case 0:case 2:case 3:break}if(message.messageEncoding!=null&&message.hasOwnProperty("messageEncoding"))switch(message.messageEncoding){default:return"messageEncoding: enum value expected";case 0:case 1:case 2:break}if(message.jsonFormat!=null&&message.hasOwnProperty("jsonFormat"))switch(message.jsonFormat){default:return"jsonFormat: enum value expected";case 0:case 1:case 2:break}if(message.enforceNamingStyle!=null&&message.hasOwnProperty("enforceNamingStyle"))switch(message.enforceNamingStyle){default:return"enforceNamingStyle: enum value expected";case 0:case 1:case 2:case 3:break}if(message.defaultSymbolVisibility!=null&&message.hasOwnProperty("defaultSymbolVisibility"))switch(message.defaultSymbolVisibility){default:return"defaultSymbolVisibility: enum value expected";case 0:case 1:case 2:case 3:case 4:break}if(message.enforceProtoLimits!=null&&message.hasOwnProperty("enforceProtoLimits"))switch(message.enforceProtoLimits){default:return"enforceProtoLimits: enum value expected";case 0:case 1:case 2:break}return null};FeatureSet.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSet)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FeatureSet;switch(object.fieldPresence){default:if(typeof object.fieldPresence==="number"){message.fieldPresence=object.fieldPresence;break}break;case"FIELD_PRESENCE_UNKNOWN":case 0:message.fieldPresence=0;break;case"EXPLICIT":case 1:message.fieldPresence=1;break;case"IMPLICIT":case 2:message.fieldPresence=2;break;case"LEGACY_REQUIRED":case 3:message.fieldPresence=3;break}switch(object.enumType){default:if(typeof object.enumType==="number"){message.enumType=object.enumType;break}break;case"ENUM_TYPE_UNKNOWN":case 0:message.enumType=0;break;case"OPEN":case 1:message.enumType=1;break;case"CLOSED":case 2:message.enumType=2;break}switch(object.repeatedFieldEncoding){default:if(typeof object.repeatedFieldEncoding==="number"){message.repeatedFieldEncoding=object.repeatedFieldEncoding;break}break;case"REPEATED_FIELD_ENCODING_UNKNOWN":case 0:message.repeatedFieldEncoding=0;break;case"PACKED":case 1:message.repeatedFieldEncoding=1;break;case"EXPANDED":case 2:message.repeatedFieldEncoding=2;break}switch(object.utf8Validation){default:if(typeof object.utf8Validation==="number"){message.utf8Validation=object.utf8Validation;break}break;case"UTF8_VALIDATION_UNKNOWN":case 0:message.utf8Validation=0;break;case"VERIFY":case 2:message.utf8Validation=2;break;case"NONE":case 3:message.utf8Validation=3;break}switch(object.messageEncoding){default:if(typeof object.messageEncoding==="number"){message.messageEncoding=object.messageEncoding;break}break;case"MESSAGE_ENCODING_UNKNOWN":case 0:message.messageEncoding=0;break;case"LENGTH_PREFIXED":case 1:message.messageEncoding=1;break;case"DELIMITED":case 2:message.messageEncoding=2;break}switch(object.jsonFormat){default:if(typeof object.jsonFormat==="number"){message.jsonFormat=object.jsonFormat;break}break;case"JSON_FORMAT_UNKNOWN":case 0:message.jsonFormat=0;break;case"ALLOW":case 1:message.jsonFormat=1;break;case"LEGACY_BEST_EFFORT":case 2:message.jsonFormat=2;break}switch(object.enforceNamingStyle){default:if(typeof object.enforceNamingStyle==="number"){message.enforceNamingStyle=object.enforceNamingStyle;break}break;case"ENFORCE_NAMING_STYLE_UNKNOWN":case 0:message.enforceNamingStyle=0;break;case"STYLE2024":case 1:message.enforceNamingStyle=1;break;case"STYLE_LEGACY":case 2:message.enforceNamingStyle=2;break;case"STYLE2026":case 3:message.enforceNamingStyle=3;break}switch(object.defaultSymbolVisibility){default:if(typeof object.defaultSymbolVisibility==="number"){message.defaultSymbolVisibility=object.defaultSymbolVisibility;break}break;case"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN":case 0:message.defaultSymbolVisibility=0;break;case"EXPORT_ALL":case 1:message.defaultSymbolVisibility=1;break;case"EXPORT_TOP_LEVEL":case 2:message.defaultSymbolVisibility=2;break;case"LOCAL_ALL":case 3:message.defaultSymbolVisibility=3;break;case"STRICT":case 4:message.defaultSymbolVisibility=4;break}switch(object.enforceProtoLimits){default:if(typeof object.enforceProtoLimits==="number"){message.enforceProtoLimits=object.enforceProtoLimits;break}break;case"PROTO_LIMITS_UNKNOWN":case 0:message.enforceProtoLimits=0;break;case"LEGACY_NO_EXPLICIT_LIMITS":case 1:message.enforceProtoLimits=1;break;case"PROTO_LIMITS2026":case 2:message.enforceProtoLimits=2;break}return message};FeatureSet.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.fieldPresence=options.enums===String?"FIELD_PRESENCE_UNKNOWN":0;object.enumType=options.enums===String?"ENUM_TYPE_UNKNOWN":0;object.repeatedFieldEncoding=options.enums===String?"REPEATED_FIELD_ENCODING_UNKNOWN":0;object.utf8Validation=options.enums===String?"UTF8_VALIDATION_UNKNOWN":0;object.messageEncoding=options.enums===String?"MESSAGE_ENCODING_UNKNOWN":0;object.jsonFormat=options.enums===String?"JSON_FORMAT_UNKNOWN":0;object.enforceNamingStyle=options.enums===String?"ENFORCE_NAMING_STYLE_UNKNOWN":0;object.defaultSymbolVisibility=options.enums===String?"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN":0;object.enforceProtoLimits=options.enums===String?"PROTO_LIMITS_UNKNOWN":0}if(message.fieldPresence!=null&&message.hasOwnProperty("fieldPresence"))object.fieldPresence=options.enums===String?$root.google.protobuf.FeatureSet.FieldPresence[message.fieldPresence]===undefined?message.fieldPresence:$root.google.protobuf.FeatureSet.FieldPresence[message.fieldPresence]:message.fieldPresence;if(message.enumType!=null&&message.hasOwnProperty("enumType"))object.enumType=options.enums===String?$root.google.protobuf.FeatureSet.EnumType[message.enumType]===undefined?message.enumType:$root.google.protobuf.FeatureSet.EnumType[message.enumType]:message.enumType;if(message.repeatedFieldEncoding!=null&&message.hasOwnProperty("repeatedFieldEncoding"))object.repeatedFieldEncoding=options.enums===String?$root.google.protobuf.FeatureSet.RepeatedFieldEncoding[message.repeatedFieldEncoding]===undefined?message.repeatedFieldEncoding:$root.google.protobuf.FeatureSet.RepeatedFieldEncoding[message.repeatedFieldEncoding]:message.repeatedFieldEncoding;if(message.utf8Validation!=null&&message.hasOwnProperty("utf8Validation"))object.utf8Validation=options.enums===String?$root.google.protobuf.FeatureSet.Utf8Validation[message.utf8Validation]===undefined?message.utf8Validation:$root.google.protobuf.FeatureSet.Utf8Validation[message.utf8Validation]:message.utf8Validation;if(message.messageEncoding!=null&&message.hasOwnProperty("messageEncoding"))object.messageEncoding=options.enums===String?$root.google.protobuf.FeatureSet.MessageEncoding[message.messageEncoding]===undefined?message.messageEncoding:$root.google.protobuf.FeatureSet.MessageEncoding[message.messageEncoding]:message.messageEncoding;if(message.jsonFormat!=null&&message.hasOwnProperty("jsonFormat"))object.jsonFormat=options.enums===String?$root.google.protobuf.FeatureSet.JsonFormat[message.jsonFormat]===undefined?message.jsonFormat:$root.google.protobuf.FeatureSet.JsonFormat[message.jsonFormat]:message.jsonFormat;if(message.enforceNamingStyle!=null&&message.hasOwnProperty("enforceNamingStyle"))object.enforceNamingStyle=options.enums===String?$root.google.protobuf.FeatureSet.EnforceNamingStyle[message.enforceNamingStyle]===undefined?message.enforceNamingStyle:$root.google.protobuf.FeatureSet.EnforceNamingStyle[message.enforceNamingStyle]:message.enforceNamingStyle;if(message.defaultSymbolVisibility!=null&&message.hasOwnProperty("defaultSymbolVisibility"))object.defaultSymbolVisibility=options.enums===String?$root.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility[message.defaultSymbolVisibility]===undefined?message.defaultSymbolVisibility:$root.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility[message.defaultSymbolVisibility]:message.defaultSymbolVisibility;if(message.enforceProtoLimits!=null&&message.hasOwnProperty("enforceProtoLimits"))object.enforceProtoLimits=options.enums===String?$root.google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits[message.enforceProtoLimits]===undefined?message.enforceProtoLimits:$root.google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits[message.enforceProtoLimits]:message.enforceProtoLimits;return object};FeatureSet.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSet.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSet"};FeatureSet.FieldPresence=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="FIELD_PRESENCE_UNKNOWN"]=0;values[valuesById[1]="EXPLICIT"]=1;values[valuesById[2]="IMPLICIT"]=2;values[valuesById[3]="LEGACY_REQUIRED"]=3;return values}();FeatureSet.EnumType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ENUM_TYPE_UNKNOWN"]=0;values[valuesById[1]="OPEN"]=1;values[valuesById[2]="CLOSED"]=2;return values}();FeatureSet.RepeatedFieldEncoding=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="REPEATED_FIELD_ENCODING_UNKNOWN"]=0;values[valuesById[1]="PACKED"]=1;values[valuesById[2]="EXPANDED"]=2;return values}();FeatureSet.Utf8Validation=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="UTF8_VALIDATION_UNKNOWN"]=0;values[valuesById[2]="VERIFY"]=2;values[valuesById[3]="NONE"]=3;return values}();FeatureSet.MessageEncoding=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="MESSAGE_ENCODING_UNKNOWN"]=0;values[valuesById[1]="LENGTH_PREFIXED"]=1;values[valuesById[2]="DELIMITED"]=2;return values}();FeatureSet.JsonFormat=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="JSON_FORMAT_UNKNOWN"]=0;values[valuesById[1]="ALLOW"]=1;values[valuesById[2]="LEGACY_BEST_EFFORT"]=2;return values}();FeatureSet.EnforceNamingStyle=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ENFORCE_NAMING_STYLE_UNKNOWN"]=0;values[valuesById[1]="STYLE2024"]=1;values[valuesById[2]="STYLE_LEGACY"]=2;values[valuesById[3]="STYLE2026"]=3;return values}();FeatureSet.VisibilityFeature=function(){function VisibilityFeature(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}VisibilityFeature.create=function create(properties){return new VisibilityFeature(properties)};VisibilityFeature.encode=function encode(message,writer){if(!writer)writer=$Writer.create();return writer};VisibilityFeature.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};VisibilityFeature.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSet.VisibilityFeature;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){default:reader.skipType(tag&7,long);break}}return message};VisibilityFeature.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};VisibilityFeature.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};VisibilityFeature.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSet.VisibilityFeature)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.protobuf.FeatureSet.VisibilityFeature};VisibilityFeature.toObject=function toObject(){return{}};VisibilityFeature.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};VisibilityFeature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSet.VisibilityFeature"};VisibilityFeature.DefaultSymbolVisibility=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN"]=0;values[valuesById[1]="EXPORT_ALL"]=1;values[valuesById[2]="EXPORT_TOP_LEVEL"]=2;values[valuesById[3]="LOCAL_ALL"]=3;values[valuesById[4]="STRICT"]=4;return values}();return VisibilityFeature}();FeatureSet.ProtoLimitsFeature=function(){function ProtoLimitsFeature(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ProtoLimitsFeature.create=function create(properties){return new ProtoLimitsFeature(properties)};ProtoLimitsFeature.encode=function encode(message,writer){if(!writer)writer=$Writer.create();return writer};ProtoLimitsFeature.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ProtoLimitsFeature.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSet.ProtoLimitsFeature;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){default:reader.skipType(tag&7,long);break}}return message};ProtoLimitsFeature.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ProtoLimitsFeature.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};ProtoLimitsFeature.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSet.ProtoLimitsFeature)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.protobuf.FeatureSet.ProtoLimitsFeature};ProtoLimitsFeature.toObject=function toObject(){return{}};ProtoLimitsFeature.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ProtoLimitsFeature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSet.ProtoLimitsFeature"};ProtoLimitsFeature.EnforceProtoLimits=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="PROTO_LIMITS_UNKNOWN"]=0;values[valuesById[1]="LEGACY_NO_EXPLICIT_LIMITS"]=1;values[valuesById[2]="PROTO_LIMITS2026"]=2;return values}();return ProtoLimitsFeature}();return FeatureSet}();protobuf.FeatureSetDefaults=function(){function FeatureSetDefaults(properties){this.defaults=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FeatureSetDefaults.prototype.defaults=$util.emptyArray;FeatureSetDefaults.prototype.minimumEdition=0;FeatureSetDefaults.prototype.maximumEdition=0;FeatureSetDefaults.create=function create(properties){return new FeatureSetDefaults(properties)};FeatureSetDefaults.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.defaults!=null&&message.defaults.length)for(var i=0;i<message.defaults.length;++i)$root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.encode(message.defaults[i],writer.uint32(10).fork()).ldelim();if(message.minimumEdition!=null&&Object.hasOwnProperty.call(message,"minimumEdition"))writer.uint32(32).int32(message.minimumEdition);if(message.maximumEdition!=null&&Object.hasOwnProperty.call(message,"maximumEdition"))writer.uint32(40).int32(message.maximumEdition);return writer};FeatureSetDefaults.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FeatureSetDefaults.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSetDefaults;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.defaults&&message.defaults.length))message.defaults=[];message.defaults.push($root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.minimumEdition=reader.int32();break}case 5:{message.maximumEdition=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FeatureSetDefaults.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSetDefaults.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.defaults!=null&&message.hasOwnProperty("defaults")){if(!Array.isArray(message.defaults))return"defaults: array expected";for(var i=0;i<message.defaults.length;++i){var error=$root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.verify(message.defaults[i],long+1);if(error)return"defaults."+error}}if(message.minimumEdition!=null&&message.hasOwnProperty("minimumEdition"))switch(message.minimumEdition){default:return"minimumEdition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.maximumEdition!=null&&message.hasOwnProperty("maximumEdition"))switch(message.maximumEdition){default:return"maximumEdition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}return null};FeatureSetDefaults.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSetDefaults)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FeatureSetDefaults;if(object.defaults){if(!Array.isArray(object.defaults))throw TypeError(".google.protobuf.FeatureSetDefaults.defaults: array expected");message.defaults=[];for(var i=0;i<object.defaults.length;++i){if(typeof object.defaults[i]!=="object")throw TypeError(".google.protobuf.FeatureSetDefaults.defaults: object expected");message.defaults[i]=$root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fromObject(object.defaults[i],long+1)}}switch(object.minimumEdition){default:if(typeof object.minimumEdition==="number"){message.minimumEdition=object.minimumEdition;break}break;case"EDITION_UNKNOWN":case 0:message.minimumEdition=0;break;case"EDITION_LEGACY":case 900:message.minimumEdition=900;break;case"EDITION_PROTO2":case 998:message.minimumEdition=998;break;case"EDITION_PROTO3":case 999:message.minimumEdition=999;break;case"EDITION_2023":case 1e3:message.minimumEdition=1e3;break;case"EDITION_2024":case 1001:message.minimumEdition=1001;break;case"EDITION_2026":case 1002:message.minimumEdition=1002;break;case"EDITION_UNSTABLE":case 9999:message.minimumEdition=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.minimumEdition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.minimumEdition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.minimumEdition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.minimumEdition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.minimumEdition=99999;break;case"EDITION_MAX":case 2147483647:message.minimumEdition=2147483647;break}switch(object.maximumEdition){default:if(typeof object.maximumEdition==="number"){message.maximumEdition=object.maximumEdition;break}break;case"EDITION_UNKNOWN":case 0:message.maximumEdition=0;break;case"EDITION_LEGACY":case 900:message.maximumEdition=900;break;case"EDITION_PROTO2":case 998:message.maximumEdition=998;break;case"EDITION_PROTO3":case 999:message.maximumEdition=999;break;case"EDITION_2023":case 1e3:message.maximumEdition=1e3;break;case"EDITION_2024":case 1001:message.maximumEdition=1001;break;case"EDITION_2026":case 1002:message.maximumEdition=1002;break;case"EDITION_UNSTABLE":case 9999:message.maximumEdition=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.maximumEdition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.maximumEdition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.maximumEdition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.maximumEdition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.maximumEdition=99999;break;case"EDITION_MAX":case 2147483647:message.maximumEdition=2147483647;break}return message};FeatureSetDefaults.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.defaults=[];if(options.defaults){object.minimumEdition=options.enums===String?"EDITION_UNKNOWN":0;object.maximumEdition=options.enums===String?"EDITION_UNKNOWN":0}if(message.defaults&&message.defaults.length){object.defaults=[];for(var j=0;j<message.defaults.length;++j)object.defaults[j]=$root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.toObject(message.defaults[j],options)}if(message.minimumEdition!=null&&message.hasOwnProperty("minimumEdition"))object.minimumEdition=options.enums===String?$root.google.protobuf.Edition[message.minimumEdition]===undefined?message.minimumEdition:$root.google.protobuf.Edition[message.minimumEdition]:message.minimumEdition;if(message.maximumEdition!=null&&message.hasOwnProperty("maximumEdition"))object.maximumEdition=options.enums===String?$root.google.protobuf.Edition[message.maximumEdition]===undefined?message.maximumEdition:$root.google.protobuf.Edition[message.maximumEdition]:message.maximumEdition;return object};FeatureSetDefaults.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSetDefaults.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSetDefaults"};FeatureSetDefaults.FeatureSetEditionDefault=function(){function FeatureSetEditionDefault(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FeatureSetEditionDefault.prototype.edition=0;FeatureSetEditionDefault.prototype.overridableFeatures=null;FeatureSetEditionDefault.prototype.fixedFeatures=null;FeatureSetEditionDefault.create=function create(properties){return new FeatureSetEditionDefault(properties)};FeatureSetEditionDefault.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.edition!=null&&Object.hasOwnProperty.call(message,"edition"))writer.uint32(24).int32(message.edition);if(message.overridableFeatures!=null&&Object.hasOwnProperty.call(message,"overridableFeatures"))$root.google.protobuf.FeatureSet.encode(message.overridableFeatures,writer.uint32(34).fork()).ldelim();if(message.fixedFeatures!=null&&Object.hasOwnProperty.call(message,"fixedFeatures"))$root.google.protobuf.FeatureSet.encode(message.fixedFeatures,writer.uint32(42).fork()).ldelim();return writer};FeatureSetEditionDefault.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FeatureSetEditionDefault.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 3:{message.edition=reader.int32();break}case 4:{message.overridableFeatures=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.fixedFeatures=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FeatureSetEditionDefault.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSetEditionDefault.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.edition!=null&&message.hasOwnProperty("edition"))switch(message.edition){default:return"edition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.overridableFeatures!=null&&message.hasOwnProperty("overridableFeatures")){var error=$root.google.protobuf.FeatureSet.verify(message.overridableFeatures,long+1);if(error)return"overridableFeatures."+error}if(message.fixedFeatures!=null&&message.hasOwnProperty("fixedFeatures")){var error=$root.google.protobuf.FeatureSet.verify(message.fixedFeatures,long+1);if(error)return"fixedFeatures."+error}return null};FeatureSetEditionDefault.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;switch(object.edition){default:if(typeof object.edition==="number"){message.edition=object.edition;break}break;case"EDITION_UNKNOWN":case 0:message.edition=0;break;case"EDITION_LEGACY":case 900:message.edition=900;break;case"EDITION_PROTO2":case 998:message.edition=998;break;case"EDITION_PROTO3":case 999:message.edition=999;break;case"EDITION_2023":case 1e3:message.edition=1e3;break;case"EDITION_2024":case 1001:message.edition=1001;break;case"EDITION_2026":case 1002:message.edition=1002;break;case"EDITION_UNSTABLE":case 9999:message.edition=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.edition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.edition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.edition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.edition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.edition=99999;break;case"EDITION_MAX":case 2147483647:message.edition=2147483647;break}if(object.overridableFeatures!=null){if(typeof object.overridableFeatures!=="object")throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.overridableFeatures: object expected");message.overridableFeatures=$root.google.protobuf.FeatureSet.fromObject(object.overridableFeatures,long+1)}if(object.fixedFeatures!=null){if(typeof object.fixedFeatures!=="object")throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fixedFeatures: object expected");message.fixedFeatures=$root.google.protobuf.FeatureSet.fromObject(object.fixedFeatures,long+1)}return message};FeatureSetEditionDefault.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.edition=options.enums===String?"EDITION_UNKNOWN":0;object.overridableFeatures=null;object.fixedFeatures=null}if(message.edition!=null&&message.hasOwnProperty("edition"))object.edition=options.enums===String?$root.google.protobuf.Edition[message.edition]===undefined?message.edition:$root.google.protobuf.Edition[message.edition]:message.edition;if(message.overridableFeatures!=null&&message.hasOwnProperty("overridableFeatures"))object.overridableFeatures=$root.google.protobuf.FeatureSet.toObject(message.overridableFeatures,options);if(message.fixedFeatures!=null&&message.hasOwnProperty("fixedFeatures"))object.fixedFeatures=$root.google.protobuf.FeatureSet.toObject(message.fixedFeatures,options);return object};FeatureSetEditionDefault.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSetEditionDefault.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"};return FeatureSetEditionDefault}();return FeatureSetDefaults}();protobuf.SourceCodeInfo=function(){function SourceCodeInfo(properties){this.location=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}SourceCodeInfo.prototype.location=$util.emptyArray;SourceCodeInfo.create=function create(properties){return new SourceCodeInfo(properties)};SourceCodeInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.location!=null&&message.location.length)for(var i=0;i<message.location.length;++i)$root.google.protobuf.SourceCodeInfo.Location.encode(message.location[i],writer.uint32(10).fork()).ldelim();return writer};SourceCodeInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};SourceCodeInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.SourceCodeInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.location&&message.location.length))message.location=[];message.location.push($root.google.protobuf.SourceCodeInfo.Location.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};SourceCodeInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SourceCodeInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.location!=null&&message.hasOwnProperty("location")){if(!Array.isArray(message.location))return"location: array expected";for(var i=0;i<message.location.length;++i){var error=$root.google.protobuf.SourceCodeInfo.Location.verify(message.location[i],long+1);if(error)return"location."+error}}return null};SourceCodeInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.SourceCodeInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.SourceCodeInfo;if(object.location){if(!Array.isArray(object.location))throw TypeError(".google.protobuf.SourceCodeInfo.location: array expected");message.location=[];for(var i=0;i<object.location.length;++i){if(typeof object.location[i]!=="object")throw TypeError(".google.protobuf.SourceCodeInfo.location: object expected");message.location[i]=$root.google.protobuf.SourceCodeInfo.Location.fromObject(object.location[i],long+1)}}return message};SourceCodeInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.location=[];if(message.location&&message.location.length){object.location=[];for(var j=0;j<message.location.length;++j)object.location[j]=$root.google.protobuf.SourceCodeInfo.Location.toObject(message.location[j],options)}return object};SourceCodeInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SourceCodeInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.SourceCodeInfo"};SourceCodeInfo.Location=function(){function Location(properties){this.path=[];this.span=[];this.leadingDetachedComments=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Location.prototype.path=$util.emptyArray;Location.prototype.span=$util.emptyArray;Location.prototype.leadingComments="";Location.prototype.trailingComments="";Location.prototype.leadingDetachedComments=$util.emptyArray;Location.create=function create(properties){return new Location(properties)};Location.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.path!=null&&message.path.length){writer.uint32(10).fork();for(var i=0;i<message.path.length;++i)writer.int32(message.path[i]);writer.ldelim()}if(message.span!=null&&message.span.length){writer.uint32(18).fork();for(var i=0;i<message.span.length;++i)writer.int32(message.span[i]);writer.ldelim()}if(message.leadingComments!=null&&Object.hasOwnProperty.call(message,"leadingComments"))writer.uint32(26).string(message.leadingComments);if(message.trailingComments!=null&&Object.hasOwnProperty.call(message,"trailingComments"))writer.uint32(34).string(message.trailingComments);if(message.leadingDetachedComments!=null&&message.leadingDetachedComments.length)for(var i=0;i<message.leadingDetachedComments.length;++i)writer.uint32(50).string(message.leadingDetachedComments[i]);return writer};Location.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Location.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.SourceCodeInfo.Location;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.path&&message.path.length))message.path=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.path.push(reader.int32())}else message.path.push(reader.int32());break}case 2:{if(!(message.span&&message.span.length))message.span=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.span.push(reader.int32())}else message.span.push(reader.int32());break}case 3:{message.leadingComments=reader.string();break}case 4:{message.trailingComments=reader.string();break}case 6:{if(!(message.leadingDetachedComments&&message.leadingDetachedComments.length))message.leadingDetachedComments=[];message.leadingDetachedComments.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};Location.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Location.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.path!=null&&message.hasOwnProperty("path")){if(!Array.isArray(message.path))return"path: array expected";for(var i=0;i<message.path.length;++i)if(!$util.isInteger(message.path[i]))return"path: integer[] expected"}if(message.span!=null&&message.hasOwnProperty("span")){if(!Array.isArray(message.span))return"span: array expected";for(var i=0;i<message.span.length;++i)if(!$util.isInteger(message.span[i]))return"span: integer[] expected"}if(message.leadingComments!=null&&message.hasOwnProperty("leadingComments"))if(!$util.isString(message.leadingComments))return"leadingComments: string expected";if(message.trailingComments!=null&&message.hasOwnProperty("trailingComments"))if(!$util.isString(message.trailingComments))return"trailingComments: string expected";if(message.leadingDetachedComments!=null&&message.hasOwnProperty("leadingDetachedComments")){if(!Array.isArray(message.leadingDetachedComments))return"leadingDetachedComments: array expected";for(var i=0;i<message.leadingDetachedComments.length;++i)if(!$util.isString(message.leadingDetachedComments[i]))return"leadingDetachedComments: string[] expected"}return null};Location.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.SourceCodeInfo.Location)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.SourceCodeInfo.Location;if(object.path){if(!Array.isArray(object.path))throw TypeError(".google.protobuf.SourceCodeInfo.Location.path: array expected");message.path=[];for(var i=0;i<object.path.length;++i)message.path[i]=object.path[i]|0}if(object.span){if(!Array.isArray(object.span))throw TypeError(".google.protobuf.SourceCodeInfo.Location.span: array expected");message.span=[];for(var i=0;i<object.span.length;++i)message.span[i]=object.span[i]|0}if(object.leadingComments!=null)message.leadingComments=String(object.leadingComments);if(object.trailingComments!=null)message.trailingComments=String(object.trailingComments);if(object.leadingDetachedComments){if(!Array.isArray(object.leadingDetachedComments))throw TypeError(".google.protobuf.SourceCodeInfo.Location.leadingDetachedComments: array expected");message.leadingDetachedComments=[];for(var i=0;i<object.leadingDetachedComments.length;++i)message.leadingDetachedComments[i]=String(object.leadingDetachedComments[i])}return message};Location.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.path=[];object.span=[];object.leadingDetachedComments=[]}if(options.defaults){object.leadingComments="";object.trailingComments=""}if(message.path&&message.path.length){object.path=[];for(var j=0;j<message.path.length;++j)object.path[j]=message.path[j]}if(message.span&&message.span.length){object.span=[];for(var j=0;j<message.span.length;++j)object.span[j]=message.span[j]}if(message.leadingComments!=null&&message.hasOwnProperty("leadingComments"))object.leadingComments=message.leadingComments;if(message.trailingComments!=null&&message.hasOwnProperty("trailingComments"))object.trailingComments=message.trailingComments;if(message.leadingDetachedComments&&message.leadingDetachedComments.length){object.leadingDetachedComments=[];for(var j=0;j<message.leadingDetachedComments.length;++j)object.leadingDetachedComments[j]=message.leadingDetachedComments[j]}return object};Location.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Location.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.SourceCodeInfo.Location"};return Location}();return SourceCodeInfo}();protobuf.GeneratedCodeInfo=function(){function GeneratedCodeInfo(properties){this.annotation=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}GeneratedCodeInfo.prototype.annotation=$util.emptyArray;GeneratedCodeInfo.create=function create(properties){return new GeneratedCodeInfo(properties)};GeneratedCodeInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.annotation!=null&&message.annotation.length)for(var i=0;i<message.annotation.length;++i)$root.google.protobuf.GeneratedCodeInfo.Annotation.encode(message.annotation[i],writer.uint32(10).fork()).ldelim();return writer};GeneratedCodeInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};GeneratedCodeInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.GeneratedCodeInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.annotation&&message.annotation.length))message.annotation=[];message.annotation.push($root.google.protobuf.GeneratedCodeInfo.Annotation.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};GeneratedCodeInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GeneratedCodeInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.annotation!=null&&message.hasOwnProperty("annotation")){if(!Array.isArray(message.annotation))return"annotation: array expected";for(var i=0;i<message.annotation.length;++i){var error=$root.google.protobuf.GeneratedCodeInfo.Annotation.verify(message.annotation[i],long+1);if(error)return"annotation."+error}}return null};GeneratedCodeInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.GeneratedCodeInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.GeneratedCodeInfo;if(object.annotation){if(!Array.isArray(object.annotation))throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: array expected");message.annotation=[];for(var i=0;i<object.annotation.length;++i){if(typeof object.annotation[i]!=="object")throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: object expected");message.annotation[i]=$root.google.protobuf.GeneratedCodeInfo.Annotation.fromObject(object.annotation[i],long+1)}}return message};GeneratedCodeInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.annotation=[];if(message.annotation&&message.annotation.length){object.annotation=[];for(var j=0;j<message.annotation.length;++j)object.annotation[j]=$root.google.protobuf.GeneratedCodeInfo.Annotation.toObject(message.annotation[j],options)}return object};GeneratedCodeInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GeneratedCodeInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.GeneratedCodeInfo"};GeneratedCodeInfo.Annotation=function(){function Annotation(properties){this.path=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Annotation.prototype.path=$util.emptyArray;Annotation.prototype.sourceFile="";Annotation.prototype.begin=0;Annotation.prototype.end=0;Annotation.prototype.semantic=0;Annotation.create=function create(properties){return new Annotation(properties)};Annotation.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.path!=null&&message.path.length){writer.uint32(10).fork();for(var i=0;i<message.path.length;++i)writer.int32(message.path[i]);writer.ldelim()}if(message.sourceFile!=null&&Object.hasOwnProperty.call(message,"sourceFile"))writer.uint32(18).string(message.sourceFile);if(message.begin!=null&&Object.hasOwnProperty.call(message,"begin"))writer.uint32(24).int32(message.begin);if(message.end!=null&&Object.hasOwnProperty.call(message,"end"))writer.uint32(32).int32(message.end);if(message.semantic!=null&&Object.hasOwnProperty.call(message,"semantic"))writer.uint32(40).int32(message.semantic);return writer};Annotation.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Annotation.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.GeneratedCodeInfo.Annotation;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.path&&message.path.length))message.path=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.path.push(reader.int32())}else message.path.push(reader.int32());break}case 2:{message.sourceFile=reader.string();break}case 3:{message.begin=reader.int32();break}case 4:{message.end=reader.int32();break}case 5:{message.semantic=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Annotation.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Annotation.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.path!=null&&message.hasOwnProperty("path")){if(!Array.isArray(message.path))return"path: array expected";for(var i=0;i<message.path.length;++i)if(!$util.isInteger(message.path[i]))return"path: integer[] expected"}if(message.sourceFile!=null&&message.hasOwnProperty("sourceFile"))if(!$util.isString(message.sourceFile))return"sourceFile: string expected";if(message.begin!=null&&message.hasOwnProperty("begin"))if(!$util.isInteger(message.begin))return"begin: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";if(message.semantic!=null&&message.hasOwnProperty("semantic"))switch(message.semantic){default:return"semantic: enum value expected";case 0:case 1:case 2:break}return null};Annotation.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.GeneratedCodeInfo.Annotation)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.GeneratedCodeInfo.Annotation;if(object.path){if(!Array.isArray(object.path))throw TypeError(".google.protobuf.GeneratedCodeInfo.Annotation.path: array expected");message.path=[];for(var i=0;i<object.path.length;++i)message.path[i]=object.path[i]|0}if(object.sourceFile!=null)message.sourceFile=String(object.sourceFile);if(object.begin!=null)message.begin=object.begin|0;if(object.end!=null)message.end=object.end|0;switch(object.semantic){default:if(typeof object.semantic==="number"){message.semantic=object.semantic;break}break;case"NONE":case 0:message.semantic=0;break;case"SET":case 1:message.semantic=1;break;case"ALIAS":case 2:message.semantic=2;break}return message};Annotation.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.path=[];if(options.defaults){object.sourceFile="";object.begin=0;object.end=0;object.semantic=options.enums===String?"NONE":0}if(message.path&&message.path.length){object.path=[];for(var j=0;j<message.path.length;++j)object.path[j]=message.path[j]}if(message.sourceFile!=null&&message.hasOwnProperty("sourceFile"))object.sourceFile=message.sourceFile;if(message.begin!=null&&message.hasOwnProperty("begin"))object.begin=message.begin;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;if(message.semantic!=null&&message.hasOwnProperty("semantic"))object.semantic=options.enums===String?$root.google.protobuf.GeneratedCodeInfo.Annotation.Semantic[message.semantic]===undefined?message.semantic:$root.google.protobuf.GeneratedCodeInfo.Annotation.Semantic[message.semantic]:message.semantic;return object};Annotation.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Annotation.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.GeneratedCodeInfo.Annotation"};Annotation.Semantic=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="NONE"]=0;values[valuesById[1]="SET"]=1;values[valuesById[2]="ALIAS"]=2;return values}();return Annotation}();return GeneratedCodeInfo}();protobuf.SymbolVisibility=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="VISIBILITY_UNSET"]=0;values[valuesById[1]="VISIBILITY_LOCAL"]=1;values[valuesById[2]="VISIBILITY_EXPORT"]=2;return values}();protobuf.Duration=function(){function Duration(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Duration.prototype.seconds=$util.Long?$util.Long.fromBits(0,0,false):0;Duration.prototype.nanos=0;Duration.create=function create(properties){return new Duration(properties)};Duration.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.seconds!=null&&Object.hasOwnProperty.call(message,"seconds"))writer.uint32(8).int64(message.seconds);if(message.nanos!=null&&Object.hasOwnProperty.call(message,"nanos"))writer.uint32(16).int32(message.nanos);return writer};Duration.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Duration.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Duration;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.seconds=reader.int64();break}case 2:{message.nanos=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Duration.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Duration.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(!$util.isInteger(message.seconds)&&!(message.seconds&&$util.isInteger(message.seconds.low)&&$util.isInteger(message.seconds.high)))return"seconds: integer|Long expected";if(message.nanos!=null&&message.hasOwnProperty("nanos"))if(!$util.isInteger(message.nanos))return"nanos: integer expected";return null};Duration.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Duration)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Duration;if(object.seconds!=null)if($util.Long)(message.seconds=$util.Long.fromValue(object.seconds)).unsigned=false;else if(typeof object.seconds==="string")message.seconds=parseInt(object.seconds,10);else if(typeof object.seconds==="number")message.seconds=object.seconds;else if(typeof object.seconds==="object")message.seconds=new $util.LongBits(object.seconds.low>>>0,object.seconds.high>>>0).toNumber();if(object.nanos!=null)message.nanos=object.nanos|0;return message};Duration.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.seconds=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.seconds=options.longs===String?"0":0;object.nanos=0}if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(typeof message.seconds==="number")object.seconds=options.longs===String?String(message.seconds):message.seconds;else object.seconds=options.longs===String?$util.Long.prototype.toString.call(message.seconds):options.longs===Number?new $util.LongBits(message.seconds.low>>>0,message.seconds.high>>>0).toNumber():message.seconds;if(message.nanos!=null&&message.hasOwnProperty("nanos"))object.nanos=message.nanos;return object};Duration.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Duration.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Duration"};return Duration}();protobuf.Timestamp=function(){function Timestamp(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Timestamp.prototype.seconds=$util.Long?$util.Long.fromBits(0,0,false):0;Timestamp.prototype.nanos=0;Timestamp.create=function create(properties){return new Timestamp(properties)};Timestamp.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.seconds!=null&&Object.hasOwnProperty.call(message,"seconds"))writer.uint32(8).int64(message.seconds);if(message.nanos!=null&&Object.hasOwnProperty.call(message,"nanos"))writer.uint32(16).int32(message.nanos);return writer};Timestamp.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Timestamp.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Timestamp;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.seconds=reader.int64();break}case 2:{message.nanos=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Timestamp.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Timestamp.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(!$util.isInteger(message.seconds)&&!(message.seconds&&$util.isInteger(message.seconds.low)&&$util.isInteger(message.seconds.high)))return"seconds: integer|Long expected";if(message.nanos!=null&&message.hasOwnProperty("nanos"))if(!$util.isInteger(message.nanos))return"nanos: integer expected";return null};Timestamp.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Timestamp)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Timestamp;if(object.seconds!=null)if($util.Long)(message.seconds=$util.Long.fromValue(object.seconds)).unsigned=false;else if(typeof object.seconds==="string")message.seconds=parseInt(object.seconds,10);else if(typeof object.seconds==="number")message.seconds=object.seconds;else if(typeof object.seconds==="object")message.seconds=new $util.LongBits(object.seconds.low>>>0,object.seconds.high>>>0).toNumber();if(object.nanos!=null)message.nanos=object.nanos|0;return message};Timestamp.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.seconds=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.seconds=options.longs===String?"0":0;object.nanos=0}if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(typeof message.seconds==="number")object.seconds=options.longs===String?String(message.seconds):message.seconds;else object.seconds=options.longs===String?$util.Long.prototype.toString.call(message.seconds):options.longs===Number?new $util.LongBits(message.seconds.low>>>0,message.seconds.high>>>0).toNumber():message.seconds;if(message.nanos!=null&&message.hasOwnProperty("nanos"))object.nanos=message.nanos;return object};Timestamp.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Timestamp.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Timestamp"};return Timestamp}();return protobuf}();google.geo=function(){var geo={};geo.type=function(){var type={};type.Viewport=function(){function Viewport(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Viewport.prototype.low=null;Viewport.prototype.high=null;Viewport.create=function create(properties){return new Viewport(properties)};Viewport.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.low!=null&&Object.hasOwnProperty.call(message,"low"))$root.google.type.LatLng.encode(message.low,writer.uint32(10).fork()).ldelim();if(message.high!=null&&Object.hasOwnProperty.call(message,"high"))$root.google.type.LatLng.encode(message.high,writer.uint32(18).fork()).ldelim();return writer};Viewport.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Viewport.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.geo.type.Viewport;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.low=$root.google.type.LatLng.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.high=$root.google.type.LatLng.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Viewport.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Viewport.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.low!=null&&message.hasOwnProperty("low")){var error=$root.google.type.LatLng.verify(message.low,long+1);if(error)return"low."+error}if(message.high!=null&&message.hasOwnProperty("high")){var error=$root.google.type.LatLng.verify(message.high,long+1);if(error)return"high."+error}return null};Viewport.fromObject=function fromObject(object,long){if(object instanceof $root.google.geo.type.Viewport)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.geo.type.Viewport;if(object.low!=null){if(typeof object.low!=="object")throw TypeError(".google.geo.type.Viewport.low: object expected");message.low=$root.google.type.LatLng.fromObject(object.low,long+1)}if(object.high!=null){if(typeof object.high!=="object")throw TypeError(".google.geo.type.Viewport.high: object expected");message.high=$root.google.type.LatLng.fromObject(object.high,long+1)}return message};Viewport.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.low=null;object.high=null}if(message.low!=null&&message.hasOwnProperty("low"))object.low=$root.google.type.LatLng.toObject(message.low,options);if(message.high!=null&&message.hasOwnProperty("high"))object.high=$root.google.type.LatLng.toObject(message.high,options);return object};Viewport.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Viewport.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.geo.type.Viewport"};return Viewport}();return type}();return geo}();google.type=function(){var type={};type.LatLng=function(){function LatLng(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}LatLng.prototype.latitude=0;LatLng.prototype.longitude=0;LatLng.create=function create(properties){return new LatLng(properties)};LatLng.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.latitude!=null&&Object.hasOwnProperty.call(message,"latitude"))writer.uint32(9).double(message.latitude);if(message.longitude!=null&&Object.hasOwnProperty.call(message,"longitude"))writer.uint32(17).double(message.longitude);return writer};LatLng.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};LatLng.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.type.LatLng;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.latitude=reader.double();break}case 2:{message.longitude=reader.double();break}default:reader.skipType(tag&7,long);break}}return message};LatLng.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LatLng.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.latitude!=null&&message.hasOwnProperty("latitude"))if(typeof message.latitude!=="number")return"latitude: number expected";if(message.longitude!=null&&message.hasOwnProperty("longitude"))if(typeof message.longitude!=="number")return"longitude: number expected";return null};LatLng.fromObject=function fromObject(object,long){if(object instanceof $root.google.type.LatLng)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.type.LatLng;if(object.latitude!=null)message.latitude=Number(object.latitude);if(object.longitude!=null)message.longitude=Number(object.longitude);return message};LatLng.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.latitude=0;object.longitude=0}if(message.latitude!=null&&message.hasOwnProperty("latitude"))object.latitude=options.json&&!isFinite(message.latitude)?String(message.latitude):message.latitude;if(message.longitude!=null&&message.hasOwnProperty("longitude"))object.longitude=options.json&&!isFinite(message.longitude)?String(message.longitude):message.longitude;return object};LatLng.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LatLng.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.type.LatLng"};return LatLng}();type.LocalizedText=function(){function LocalizedText(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}LocalizedText.prototype.text="";LocalizedText.prototype.languageCode="";LocalizedText.create=function create(properties){return new LocalizedText(properties)};LocalizedText.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.text!=null&&Object.hasOwnProperty.call(message,"text"))writer.uint32(10).string(message.text);if(message.languageCode!=null&&Object.hasOwnProperty.call(message,"languageCode"))writer.uint32(18).string(message.languageCode);return writer};LocalizedText.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};LocalizedText.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.type.LocalizedText;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.text=reader.string();break}case 2:{message.languageCode=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};LocalizedText.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LocalizedText.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.text!=null&&message.hasOwnProperty("text"))if(!$util.isString(message.text))return"text: string expected";if(message.languageCode!=null&&message.hasOwnProperty("languageCode"))if(!$util.isString(message.languageCode))return"languageCode: string expected";return null};LocalizedText.fromObject=function fromObject(object,long){if(object instanceof $root.google.type.LocalizedText)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.type.LocalizedText;if(object.text!=null)message.text=String(object.text);if(object.languageCode!=null)message.languageCode=String(object.languageCode);return message};LocalizedText.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.text="";object.languageCode=""}if(message.text!=null&&message.hasOwnProperty("text"))object.text=message.text;if(message.languageCode!=null&&message.hasOwnProperty("languageCode"))object.languageCode=message.languageCode;return object};LocalizedText.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LocalizedText.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.type.LocalizedText"};return LocalizedText}();type.Money=function(){function Money(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Money.prototype.currencyCode="";Money.prototype.units=$util.Long?$util.Long.fromBits(0,0,false):0;Money.prototype.nanos=0;Money.create=function create(properties){return new Money(properties)};Money.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.currencyCode!=null&&Object.hasOwnProperty.call(message,"currencyCode"))writer.uint32(10).string(message.currencyCode);if(message.units!=null&&Object.hasOwnProperty.call(message,"units"))writer.uint32(16).int64(message.units);if(message.nanos!=null&&Object.hasOwnProperty.call(message,"nanos"))writer.uint32(24).int32(message.nanos);return writer};Money.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Money.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.type.Money;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.currencyCode=reader.string();break}case 2:{message.units=reader.int64();break}case 3:{message.nanos=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Money.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Money.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.currencyCode!=null&&message.hasOwnProperty("currencyCode"))if(!$util.isString(message.currencyCode))return"currencyCode: string expected";if(message.units!=null&&message.hasOwnProperty("units"))if(!$util.isInteger(message.units)&&!(message.units&&$util.isInteger(message.units.low)&&$util.isInteger(message.units.high)))return"units: integer|Long expected";if(message.nanos!=null&&message.hasOwnProperty("nanos"))if(!$util.isInteger(message.nanos))return"nanos: integer expected";return null};Money.fromObject=function fromObject(object,long){if(object instanceof $root.google.type.Money)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.type.Money;if(object.currencyCode!=null)message.currencyCode=String(object.currencyCode);if(object.units!=null)if($util.Long)(message.units=$util.Long.fromValue(object.units)).unsigned=false;else if(typeof object.units==="string")message.units=parseInt(object.units,10);else if(typeof object.units==="number")message.units=object.units;else if(typeof object.units==="object")message.units=new $util.LongBits(object.units.low>>>0,object.units.high>>>0).toNumber();if(object.nanos!=null)message.nanos=object.nanos|0;return message};Money.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.currencyCode="";if($util.Long){var long=new $util.Long(0,0,false);object.units=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.units=options.longs===String?"0":0;object.nanos=0}if(message.currencyCode!=null&&message.hasOwnProperty("currencyCode"))object.currencyCode=message.currencyCode;if(message.units!=null&&message.hasOwnProperty("units"))if(typeof message.units==="number")object.units=options.longs===String?String(message.units):message.units;else object.units=options.longs===String?$util.Long.prototype.toString.call(message.units):options.longs===Number?new $util.LongBits(message.units.low>>>0,message.units.high>>>0).toNumber():message.units;if(message.nanos!=null&&message.hasOwnProperty("nanos"))object.nanos=message.nanos;return object};Money.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Money.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.type.Money"};return Money}();return type}();google.maps=function(){var maps={};maps.routing=function(){var routing={};routing.v2=function(){var v2={};v2.FallbackInfo=function(){function FallbackInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FallbackInfo.prototype.routingMode=0;FallbackInfo.prototype.reason=0;FallbackInfo.create=function create(properties){return new FallbackInfo(properties)};FallbackInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.routingMode!=null&&Object.hasOwnProperty.call(message,"routingMode"))writer.uint32(8).int32(message.routingMode);if(message.reason!=null&&Object.hasOwnProperty.call(message,"reason"))writer.uint32(16).int32(message.reason);return writer};FallbackInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FallbackInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.FallbackInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.routingMode=reader.int32();break}case 2:{message.reason=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FallbackInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FallbackInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.routingMode!=null&&message.hasOwnProperty("routingMode"))switch(message.routingMode){default:return"routingMode: enum value expected";case 0:case 1:case 2:break}if(message.reason!=null&&message.hasOwnProperty("reason"))switch(message.reason){default:return"reason: enum value expected";case 0:case 1:case 2:break}return null};FallbackInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.FallbackInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.FallbackInfo;switch(object.routingMode){default:if(typeof object.routingMode==="number"){message.routingMode=object.routingMode;break}break;case"FALLBACK_ROUTING_MODE_UNSPECIFIED":case 0:message.routingMode=0;break;case"FALLBACK_TRAFFIC_UNAWARE":case 1:message.routingMode=1;break;case"FALLBACK_TRAFFIC_AWARE":case 2:message.routingMode=2;break}switch(object.reason){default:if(typeof object.reason==="number"){message.reason=object.reason;break}break;case"FALLBACK_REASON_UNSPECIFIED":case 0:message.reason=0;break;case"SERVER_ERROR":case 1:message.reason=1;break;case"LATENCY_EXCEEDED":case 2:message.reason=2;break}return message};FallbackInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.routingMode=options.enums===String?"FALLBACK_ROUTING_MODE_UNSPECIFIED":0;object.reason=options.enums===String?"FALLBACK_REASON_UNSPECIFIED":0}if(message.routingMode!=null&&message.hasOwnProperty("routingMode"))object.routingMode=options.enums===String?$root.google.maps.routing.v2.FallbackRoutingMode[message.routingMode]===undefined?message.routingMode:$root.google.maps.routing.v2.FallbackRoutingMode[message.routingMode]:message.routingMode;if(message.reason!=null&&message.hasOwnProperty("reason"))object.reason=options.enums===String?$root.google.maps.routing.v2.FallbackReason[message.reason]===undefined?message.reason:$root.google.maps.routing.v2.FallbackReason[message.reason]:message.reason;return object};FallbackInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FallbackInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.FallbackInfo"};return FallbackInfo}();v2.FallbackReason=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="FALLBACK_REASON_UNSPECIFIED"]=0;values[valuesById[1]="SERVER_ERROR"]=1;values[valuesById[2]="LATENCY_EXCEEDED"]=2;return values}();v2.FallbackRoutingMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="FALLBACK_ROUTING_MODE_UNSPECIFIED"]=0;values[valuesById[1]="FALLBACK_TRAFFIC_UNAWARE"]=1;values[valuesById[2]="FALLBACK_TRAFFIC_AWARE"]=2;return values}();v2.GeocodingResults=function(){function GeocodingResults(properties){this.intermediates=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}GeocodingResults.prototype.origin=null;GeocodingResults.prototype.destination=null;GeocodingResults.prototype.intermediates=$util.emptyArray;GeocodingResults.create=function create(properties){return new GeocodingResults(properties)};GeocodingResults.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.origin!=null&&Object.hasOwnProperty.call(message,"origin"))$root.google.maps.routing.v2.GeocodedWaypoint.encode(message.origin,writer.uint32(10).fork()).ldelim();if(message.destination!=null&&Object.hasOwnProperty.call(message,"destination"))$root.google.maps.routing.v2.GeocodedWaypoint.encode(message.destination,writer.uint32(18).fork()).ldelim();if(message.intermediates!=null&&message.intermediates.length)for(var i=0;i<message.intermediates.length;++i)$root.google.maps.routing.v2.GeocodedWaypoint.encode(message.intermediates[i],writer.uint32(26).fork()).ldelim();return writer};GeocodingResults.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};GeocodingResults.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.GeocodingResults;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.origin=$root.google.maps.routing.v2.GeocodedWaypoint.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.destination=$root.google.maps.routing.v2.GeocodedWaypoint.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{if(!(message.intermediates&&message.intermediates.length))message.intermediates=[];message.intermediates.push($root.google.maps.routing.v2.GeocodedWaypoint.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};GeocodingResults.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GeocodingResults.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.origin!=null&&message.hasOwnProperty("origin")){var error=$root.google.maps.routing.v2.GeocodedWaypoint.verify(message.origin,long+1);if(error)return"origin."+error}if(message.destination!=null&&message.hasOwnProperty("destination")){var error=$root.google.maps.routing.v2.GeocodedWaypoint.verify(message.destination,long+1);if(error)return"destination."+error}if(message.intermediates!=null&&message.hasOwnProperty("intermediates")){if(!Array.isArray(message.intermediates))return"intermediates: array expected";for(var i=0;i<message.intermediates.length;++i){var error=$root.google.maps.routing.v2.GeocodedWaypoint.verify(message.intermediates[i],long+1);if(error)return"intermediates."+error}}return null};GeocodingResults.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.GeocodingResults)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.GeocodingResults;if(object.origin!=null){if(typeof object.origin!=="object")throw TypeError(".google.maps.routing.v2.GeocodingResults.origin: object expected");message.origin=$root.google.maps.routing.v2.GeocodedWaypoint.fromObject(object.origin,long+1)}if(object.destination!=null){if(typeof object.destination!=="object")throw TypeError(".google.maps.routing.v2.GeocodingResults.destination: object expected");message.destination=$root.google.maps.routing.v2.GeocodedWaypoint.fromObject(object.destination,long+1)}if(object.intermediates){if(!Array.isArray(object.intermediates))throw TypeError(".google.maps.routing.v2.GeocodingResults.intermediates: array expected");message.intermediates=[];for(var i=0;i<object.intermediates.length;++i){if(typeof object.intermediates[i]!=="object")throw TypeError(".google.maps.routing.v2.GeocodingResults.intermediates: object expected");message.intermediates[i]=$root.google.maps.routing.v2.GeocodedWaypoint.fromObject(object.intermediates[i],long+1)}}return message};GeocodingResults.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.intermediates=[];if(options.defaults){object.origin=null;object.destination=null}if(message.origin!=null&&message.hasOwnProperty("origin"))object.origin=$root.google.maps.routing.v2.GeocodedWaypoint.toObject(message.origin,options);if(message.destination!=null&&message.hasOwnProperty("destination"))object.destination=$root.google.maps.routing.v2.GeocodedWaypoint.toObject(message.destination,options);if(message.intermediates&&message.intermediates.length){object.intermediates=[];for(var j=0;j<message.intermediates.length;++j)object.intermediates[j]=$root.google.maps.routing.v2.GeocodedWaypoint.toObject(message.intermediates[j],options)}return object};GeocodingResults.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GeocodingResults.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.GeocodingResults"};return GeocodingResults}();v2.GeocodedWaypoint=function(){function GeocodedWaypoint(properties){this.type=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}GeocodedWaypoint.prototype.geocoderStatus=null;GeocodedWaypoint.prototype.intermediateWaypointRequestIndex=null;GeocodedWaypoint.prototype.type=$util.emptyArray;GeocodedWaypoint.prototype.partialMatch=false;GeocodedWaypoint.prototype.placeId="";var $oneOfFields;Object.defineProperty(GeocodedWaypoint.prototype,"_intermediateWaypointRequestIndex",{get:$util.oneOfGetter($oneOfFields=["intermediateWaypointRequestIndex"]),set:$util.oneOfSetter($oneOfFields)});GeocodedWaypoint.create=function create(properties){return new GeocodedWaypoint(properties)};GeocodedWaypoint.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.geocoderStatus!=null&&Object.hasOwnProperty.call(message,"geocoderStatus"))$root.google.rpc.Status.encode(message.geocoderStatus,writer.uint32(10).fork()).ldelim();if(message.intermediateWaypointRequestIndex!=null&&Object.hasOwnProperty.call(message,"intermediateWaypointRequestIndex"))writer.uint32(16).int32(message.intermediateWaypointRequestIndex);if(message.type!=null&&message.type.length)for(var i=0;i<message.type.length;++i)writer.uint32(26).string(message.type[i]);if(message.partialMatch!=null&&Object.hasOwnProperty.call(message,"partialMatch"))writer.uint32(32).bool(message.partialMatch);if(message.placeId!=null&&Object.hasOwnProperty.call(message,"placeId"))writer.uint32(42).string(message.placeId);return writer};GeocodedWaypoint.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};GeocodedWaypoint.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.GeocodedWaypoint;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.geocoderStatus=$root.google.rpc.Status.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.intermediateWaypointRequestIndex=reader.int32();break}case 3:{if(!(message.type&&message.type.length))message.type=[];message.type.push(reader.string());break}case 4:{message.partialMatch=reader.bool();break}case 5:{message.placeId=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GeocodedWaypoint.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GeocodedWaypoint.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.geocoderStatus!=null&&message.hasOwnProperty("geocoderStatus")){var error=$root.google.rpc.Status.verify(message.geocoderStatus,long+1);if(error)return"geocoderStatus."+error}if(message.intermediateWaypointRequestIndex!=null&&message.hasOwnProperty("intermediateWaypointRequestIndex")){properties._intermediateWaypointRequestIndex=1;if(!$util.isInteger(message.intermediateWaypointRequestIndex))return"intermediateWaypointRequestIndex: integer expected"}if(message.type!=null&&message.hasOwnProperty("type")){if(!Array.isArray(message.type))return"type: array expected";for(var i=0;i<message.type.length;++i)if(!$util.isString(message.type[i]))return"type: string[] expected"}if(message.partialMatch!=null&&message.hasOwnProperty("partialMatch"))if(typeof message.partialMatch!=="boolean")return"partialMatch: boolean expected";if(message.placeId!=null&&message.hasOwnProperty("placeId"))if(!$util.isString(message.placeId))return"placeId: string expected";return null};GeocodedWaypoint.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.GeocodedWaypoint)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.GeocodedWaypoint;if(object.geocoderStatus!=null){if(typeof object.geocoderStatus!=="object")throw TypeError(".google.maps.routing.v2.GeocodedWaypoint.geocoderStatus: object expected");message.geocoderStatus=$root.google.rpc.Status.fromObject(object.geocoderStatus,long+1)}if(object.intermediateWaypointRequestIndex!=null)message.intermediateWaypointRequestIndex=object.intermediateWaypointRequestIndex|0;if(object.type){if(!Array.isArray(object.type))throw TypeError(".google.maps.routing.v2.GeocodedWaypoint.type: array expected");message.type=[];for(var i=0;i<object.type.length;++i)message.type[i]=String(object.type[i])}if(object.partialMatch!=null)message.partialMatch=Boolean(object.partialMatch);if(object.placeId!=null)message.placeId=String(object.placeId);return message};GeocodedWaypoint.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.type=[];if(options.defaults){object.geocoderStatus=null;object.partialMatch=false;object.placeId=""}if(message.geocoderStatus!=null&&message.hasOwnProperty("geocoderStatus"))object.geocoderStatus=$root.google.rpc.Status.toObject(message.geocoderStatus,options);if(message.intermediateWaypointRequestIndex!=null&&message.hasOwnProperty("intermediateWaypointRequestIndex")){object.intermediateWaypointRequestIndex=message.intermediateWaypointRequestIndex;if(options.oneofs)object._intermediateWaypointRequestIndex="intermediateWaypointRequestIndex"}if(message.type&&message.type.length){object.type=[];for(var j=0;j<message.type.length;++j)object.type[j]=message.type[j]}if(message.partialMatch!=null&&message.hasOwnProperty("partialMatch"))object.partialMatch=message.partialMatch;if(message.placeId!=null&&message.hasOwnProperty("placeId"))object.placeId=message.placeId;return object};GeocodedWaypoint.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GeocodedWaypoint.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.GeocodedWaypoint"};return GeocodedWaypoint}();v2.LocalizedTime=function(){function LocalizedTime(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}LocalizedTime.prototype.time=null;LocalizedTime.prototype.timeZone="";LocalizedTime.create=function create(properties){return new LocalizedTime(properties)};LocalizedTime.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.time!=null&&Object.hasOwnProperty.call(message,"time"))$root.google.type.LocalizedText.encode(message.time,writer.uint32(10).fork()).ldelim();if(message.timeZone!=null&&Object.hasOwnProperty.call(message,"timeZone"))writer.uint32(18).string(message.timeZone);return writer};LocalizedTime.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};LocalizedTime.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.LocalizedTime;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.time=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.timeZone=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};LocalizedTime.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LocalizedTime.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.time!=null&&message.hasOwnProperty("time")){var error=$root.google.type.LocalizedText.verify(message.time,long+1);if(error)return"time."+error}if(message.timeZone!=null&&message.hasOwnProperty("timeZone"))if(!$util.isString(message.timeZone))return"timeZone: string expected";return null};LocalizedTime.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.LocalizedTime)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.LocalizedTime;if(object.time!=null){if(typeof object.time!=="object")throw TypeError(".google.maps.routing.v2.LocalizedTime.time: object expected");message.time=$root.google.type.LocalizedText.fromObject(object.time,long+1)}if(object.timeZone!=null)message.timeZone=String(object.timeZone);return message};LocalizedTime.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.time=null;object.timeZone=""}if(message.time!=null&&message.hasOwnProperty("time"))object.time=$root.google.type.LocalizedText.toObject(message.time,options);if(message.timeZone!=null&&message.hasOwnProperty("timeZone"))object.timeZone=message.timeZone;return object};LocalizedTime.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LocalizedTime.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.LocalizedTime"};return LocalizedTime}();v2.Location=function(){function Location(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Location.prototype.latLng=null;Location.prototype.heading=null;Location.create=function create(properties){return new Location(properties)};Location.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.latLng!=null&&Object.hasOwnProperty.call(message,"latLng"))$root.google.type.LatLng.encode(message.latLng,writer.uint32(10).fork()).ldelim();if(message.heading!=null&&Object.hasOwnProperty.call(message,"heading"))$root.google.protobuf.Int32Value.encode(message.heading,writer.uint32(18).fork()).ldelim();return writer};Location.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Location.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.Location;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.latLng=$root.google.type.LatLng.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.heading=$root.google.protobuf.Int32Value.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Location.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Location.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.latLng!=null&&message.hasOwnProperty("latLng")){var error=$root.google.type.LatLng.verify(message.latLng,long+1);if(error)return"latLng."+error}if(message.heading!=null&&message.hasOwnProperty("heading")){var error=$root.google.protobuf.Int32Value.verify(message.heading,long+1);if(error)return"heading."+error}return null};Location.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.Location)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.Location;if(object.latLng!=null){if(typeof object.latLng!=="object")throw TypeError(".google.maps.routing.v2.Location.latLng: object expected");message.latLng=$root.google.type.LatLng.fromObject(object.latLng,long+1)}if(object.heading!=null){if(typeof object.heading!=="object")throw TypeError(".google.maps.routing.v2.Location.heading: object expected");message.heading=$root.google.protobuf.Int32Value.fromObject(object.heading,long+1)}return message};Location.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.latLng=null;object.heading=null}if(message.latLng!=null&&message.hasOwnProperty("latLng"))object.latLng=$root.google.type.LatLng.toObject(message.latLng,options);if(message.heading!=null&&message.hasOwnProperty("heading"))object.heading=$root.google.protobuf.Int32Value.toObject(message.heading,options);return object};Location.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Location.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.Location"};return Location}();v2.Maneuver=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="MANEUVER_UNSPECIFIED"]=0;values[valuesById[1]="TURN_SLIGHT_LEFT"]=1;values[valuesById[2]="TURN_SHARP_LEFT"]=2;values[valuesById[3]="UTURN_LEFT"]=3;values[valuesById[4]="TURN_LEFT"]=4;values[valuesById[5]="TURN_SLIGHT_RIGHT"]=5;values[valuesById[6]="TURN_SHARP_RIGHT"]=6;values[valuesById[7]="UTURN_RIGHT"]=7;values[valuesById[8]="TURN_RIGHT"]=8;values[valuesById[9]="STRAIGHT"]=9;values[valuesById[10]="RAMP_LEFT"]=10;values[valuesById[11]="RAMP_RIGHT"]=11;values[valuesById[12]="MERGE"]=12;values[valuesById[13]="FORK_LEFT"]=13;values[valuesById[14]="FORK_RIGHT"]=14;values[valuesById[15]="FERRY"]=15;values[valuesById[16]="FERRY_TRAIN"]=16;values[valuesById[17]="ROUNDABOUT_LEFT"]=17;values[valuesById[18]="ROUNDABOUT_RIGHT"]=18;values[valuesById[19]="DEPART"]=19;values[valuesById[20]="NAME_CHANGE"]=20;return values}();v2.NavigationInstruction=function(){function NavigationInstruction(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}NavigationInstruction.prototype.maneuver=0;NavigationInstruction.prototype.instructions="";NavigationInstruction.create=function create(properties){return new NavigationInstruction(properties)};NavigationInstruction.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.maneuver!=null&&Object.hasOwnProperty.call(message,"maneuver"))writer.uint32(8).int32(message.maneuver);if(message.instructions!=null&&Object.hasOwnProperty.call(message,"instructions"))writer.uint32(18).string(message.instructions);return writer};NavigationInstruction.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};NavigationInstruction.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.NavigationInstruction;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.maneuver=reader.int32();break}case 2:{message.instructions=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};NavigationInstruction.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};NavigationInstruction.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.maneuver!=null&&message.hasOwnProperty("maneuver"))switch(message.maneuver){default:return"maneuver: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:break}if(message.instructions!=null&&message.hasOwnProperty("instructions"))if(!$util.isString(message.instructions))return"instructions: string expected";return null};NavigationInstruction.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.NavigationInstruction)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.NavigationInstruction;switch(object.maneuver){default:if(typeof object.maneuver==="number"){message.maneuver=object.maneuver;break}break;case"MANEUVER_UNSPECIFIED":case 0:message.maneuver=0;break;case"TURN_SLIGHT_LEFT":case 1:message.maneuver=1;break;case"TURN_SHARP_LEFT":case 2:message.maneuver=2;break;case"UTURN_LEFT":case 3:message.maneuver=3;break;case"TURN_LEFT":case 4:message.maneuver=4;break;case"TURN_SLIGHT_RIGHT":case 5:message.maneuver=5;break;case"TURN_SHARP_RIGHT":case 6:message.maneuver=6;break;case"UTURN_RIGHT":case 7:message.maneuver=7;break;case"TURN_RIGHT":case 8:message.maneuver=8;break;case"STRAIGHT":case 9:message.maneuver=9;break;case"RAMP_LEFT":case 10:message.maneuver=10;break;case"RAMP_RIGHT":case 11:message.maneuver=11;break;case"MERGE":case 12:message.maneuver=12;break;case"FORK_LEFT":case 13:message.maneuver=13;break;case"FORK_RIGHT":case 14:message.maneuver=14;break;case"FERRY":case 15:message.maneuver=15;break;case"FERRY_TRAIN":case 16:message.maneuver=16;break;case"ROUNDABOUT_LEFT":case 17:message.maneuver=17;break;case"ROUNDABOUT_RIGHT":case 18:message.maneuver=18;break;case"DEPART":case 19:message.maneuver=19;break;case"NAME_CHANGE":case 20:message.maneuver=20;break}if(object.instructions!=null)message.instructions=String(object.instructions);return message};NavigationInstruction.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.maneuver=options.enums===String?"MANEUVER_UNSPECIFIED":0;object.instructions=""}if(message.maneuver!=null&&message.hasOwnProperty("maneuver"))object.maneuver=options.enums===String?$root.google.maps.routing.v2.Maneuver[message.maneuver]===undefined?message.maneuver:$root.google.maps.routing.v2.Maneuver[message.maneuver]:message.maneuver;if(message.instructions!=null&&message.hasOwnProperty("instructions"))object.instructions=message.instructions;return object};NavigationInstruction.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};NavigationInstruction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.NavigationInstruction"};return NavigationInstruction}();v2.Polyline=function(){function Polyline(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Polyline.prototype.encodedPolyline=null;Polyline.prototype.geoJsonLinestring=null;var $oneOfFields;Object.defineProperty(Polyline.prototype,"polylineType",{get:$util.oneOfGetter($oneOfFields=["encodedPolyline","geoJsonLinestring"]),set:$util.oneOfSetter($oneOfFields)});Polyline.create=function create(properties){return new Polyline(properties)};Polyline.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.encodedPolyline!=null&&Object.hasOwnProperty.call(message,"encodedPolyline"))writer.uint32(10).string(message.encodedPolyline);if(message.geoJsonLinestring!=null&&Object.hasOwnProperty.call(message,"geoJsonLinestring"))$root.google.protobuf.Struct.encode(message.geoJsonLinestring,writer.uint32(18).fork()).ldelim();return writer};Polyline.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Polyline.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.Polyline;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.encodedPolyline=reader.string();break}case 2:{message.geoJsonLinestring=$root.google.protobuf.Struct.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Polyline.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Polyline.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.encodedPolyline!=null&&message.hasOwnProperty("encodedPolyline")){properties.polylineType=1;if(!$util.isString(message.encodedPolyline))return"encodedPolyline: string expected"}if(message.geoJsonLinestring!=null&&message.hasOwnProperty("geoJsonLinestring")){if(properties.polylineType===1)return"polylineType: multiple values";properties.polylineType=1;{var error=$root.google.protobuf.Struct.verify(message.geoJsonLinestring,long+1);if(error)return"geoJsonLinestring."+error}}return null};Polyline.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.Polyline)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.Polyline;if(object.encodedPolyline!=null)message.encodedPolyline=String(object.encodedPolyline);if(object.geoJsonLinestring!=null){if(typeof object.geoJsonLinestring!=="object")throw TypeError(".google.maps.routing.v2.Polyline.geoJsonLinestring: object expected");message.geoJsonLinestring=$root.google.protobuf.Struct.fromObject(object.geoJsonLinestring,long+1)}return message};Polyline.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.encodedPolyline!=null&&message.hasOwnProperty("encodedPolyline")){object.encodedPolyline=message.encodedPolyline;if(options.oneofs)object.polylineType="encodedPolyline"}if(message.geoJsonLinestring!=null&&message.hasOwnProperty("geoJsonLinestring")){object.geoJsonLinestring=$root.google.protobuf.Struct.toObject(message.geoJsonLinestring,options);if(options.oneofs)object.polylineType="geoJsonLinestring"}return object};Polyline.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Polyline.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.Polyline"};return Polyline}();v2.PolylineQuality=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="POLYLINE_QUALITY_UNSPECIFIED"]=0;values[valuesById[1]="HIGH_QUALITY"]=1;values[valuesById[2]="OVERVIEW"]=2;return values}();v2.PolylineEncoding=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="POLYLINE_ENCODING_UNSPECIFIED"]=0;values[valuesById[1]="ENCODED_POLYLINE"]=1;values[valuesById[2]="GEO_JSON_LINESTRING"]=2;return values}();v2.PolylineDetails=function(){function PolylineDetails(properties){this.flyoverInfo=[];this.narrowRoadInfo=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}PolylineDetails.prototype.flyoverInfo=$util.emptyArray;PolylineDetails.prototype.narrowRoadInfo=$util.emptyArray;PolylineDetails.create=function create(properties){return new PolylineDetails(properties)};PolylineDetails.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.flyoverInfo!=null&&message.flyoverInfo.length)for(var i=0;i<message.flyoverInfo.length;++i)$root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.encode(message.flyoverInfo[i],writer.uint32(98).fork()).ldelim();if(message.narrowRoadInfo!=null&&message.narrowRoadInfo.length)for(var i=0;i<message.narrowRoadInfo.length;++i)$root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.encode(message.narrowRoadInfo[i],writer.uint32(106).fork()).ldelim();return writer};PolylineDetails.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};PolylineDetails.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.PolylineDetails;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 12:{if(!(message.flyoverInfo&&message.flyoverInfo.length))message.flyoverInfo=[];message.flyoverInfo.push($root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.decode(reader,reader.uint32(),undefined,long+1));break}case 13:{if(!(message.narrowRoadInfo&&message.narrowRoadInfo.length))message.narrowRoadInfo=[];message.narrowRoadInfo.push($root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};PolylineDetails.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PolylineDetails.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.flyoverInfo!=null&&message.hasOwnProperty("flyoverInfo")){if(!Array.isArray(message.flyoverInfo))return"flyoverInfo: array expected";for(var i=0;i<message.flyoverInfo.length;++i){var error=$root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.verify(message.flyoverInfo[i],long+1);if(error)return"flyoverInfo."+error}}if(message.narrowRoadInfo!=null&&message.hasOwnProperty("narrowRoadInfo")){if(!Array.isArray(message.narrowRoadInfo))return"narrowRoadInfo: array expected";for(var i=0;i<message.narrowRoadInfo.length;++i){var error=$root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.verify(message.narrowRoadInfo[i],long+1);if(error)return"narrowRoadInfo."+error}}return null};PolylineDetails.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.PolylineDetails)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.PolylineDetails;if(object.flyoverInfo){if(!Array.isArray(object.flyoverInfo))throw TypeError(".google.maps.routing.v2.PolylineDetails.flyoverInfo: array expected");message.flyoverInfo=[];for(var i=0;i<object.flyoverInfo.length;++i){if(typeof object.flyoverInfo[i]!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.flyoverInfo: object expected");message.flyoverInfo[i]=$root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.fromObject(object.flyoverInfo[i],long+1)}}if(object.narrowRoadInfo){if(!Array.isArray(object.narrowRoadInfo))throw TypeError(".google.maps.routing.v2.PolylineDetails.narrowRoadInfo: array expected");message.narrowRoadInfo=[];for(var i=0;i<object.narrowRoadInfo.length;++i){if(typeof object.narrowRoadInfo[i]!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.narrowRoadInfo: object expected");message.narrowRoadInfo[i]=$root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.fromObject(object.narrowRoadInfo[i],long+1)}}return message};PolylineDetails.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.flyoverInfo=[];object.narrowRoadInfo=[]}if(message.flyoverInfo&&message.flyoverInfo.length){object.flyoverInfo=[];for(var j=0;j<message.flyoverInfo.length;++j)object.flyoverInfo[j]=$root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.toObject(message.flyoverInfo[j],options)}if(message.narrowRoadInfo&&message.narrowRoadInfo.length){object.narrowRoadInfo=[];for(var j=0;j<message.narrowRoadInfo.length;++j)object.narrowRoadInfo[j]=$root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.toObject(message.narrowRoadInfo[j],options)}return object};PolylineDetails.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PolylineDetails.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.PolylineDetails"};PolylineDetails.PolylinePointIndex=function(){function PolylinePointIndex(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}PolylinePointIndex.prototype.startIndex=null;PolylinePointIndex.prototype.endIndex=null;var $oneOfFields;Object.defineProperty(PolylinePointIndex.prototype,"_startIndex",{get:$util.oneOfGetter($oneOfFields=["startIndex"]),set:$util.oneOfSetter($oneOfFields)});Object.defineProperty(PolylinePointIndex.prototype,"_endIndex",{get:$util.oneOfGetter($oneOfFields=["endIndex"]),set:$util.oneOfSetter($oneOfFields)});PolylinePointIndex.create=function create(properties){return new PolylinePointIndex(properties)};PolylinePointIndex.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.startIndex!=null&&Object.hasOwnProperty.call(message,"startIndex"))writer.uint32(8).int32(message.startIndex);if(message.endIndex!=null&&Object.hasOwnProperty.call(message,"endIndex"))writer.uint32(16).int32(message.endIndex);return writer};PolylinePointIndex.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};PolylinePointIndex.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.startIndex=reader.int32();break}case 2:{message.endIndex=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};PolylinePointIndex.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PolylinePointIndex.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.startIndex!=null&&message.hasOwnProperty("startIndex")){properties._startIndex=1;if(!$util.isInteger(message.startIndex))return"startIndex: integer expected"}if(message.endIndex!=null&&message.hasOwnProperty("endIndex")){properties._endIndex=1;if(!$util.isInteger(message.endIndex))return"endIndex: integer expected"}return null};PolylinePointIndex.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex;if(object.startIndex!=null)message.startIndex=object.startIndex|0;if(object.endIndex!=null)message.endIndex=object.endIndex|0;return message};PolylinePointIndex.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.startIndex!=null&&message.hasOwnProperty("startIndex")){object.startIndex=message.startIndex;if(options.oneofs)object._startIndex="startIndex"}if(message.endIndex!=null&&message.hasOwnProperty("endIndex")){object.endIndex=message.endIndex;if(options.oneofs)object._endIndex="endIndex"}return object};PolylinePointIndex.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PolylinePointIndex.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.PolylineDetails.PolylinePointIndex"};return PolylinePointIndex}();PolylineDetails.RoadFeatureState=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ROAD_FEATURE_STATE_UNSPECIFIED"]=0;values[valuesById[1]="EXISTS"]=1;values[valuesById[2]="DOES_NOT_EXIST"]=2;return values}();PolylineDetails.FlyoverInfo=function(){function FlyoverInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FlyoverInfo.prototype.flyoverPresence=0;FlyoverInfo.prototype.polylinePointIndex=null;FlyoverInfo.create=function create(properties){return new FlyoverInfo(properties)};FlyoverInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.flyoverPresence!=null&&Object.hasOwnProperty.call(message,"flyoverPresence"))writer.uint32(8).int32(message.flyoverPresence);if(message.polylinePointIndex!=null&&Object.hasOwnProperty.call(message,"polylinePointIndex"))$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.encode(message.polylinePointIndex,writer.uint32(18).fork()).ldelim();return writer};FlyoverInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FlyoverInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.flyoverPresence=reader.int32();break}case 2:{message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FlyoverInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FlyoverInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.flyoverPresence!=null&&message.hasOwnProperty("flyoverPresence"))switch(message.flyoverPresence){default:return"flyoverPresence: enum value expected";case 0:case 1:case 2:break}if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex")){var error=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.verify(message.polylinePointIndex,long+1);if(error)return"polylinePointIndex."+error}return null};FlyoverInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo;switch(object.flyoverPresence){default:if(typeof object.flyoverPresence==="number"){message.flyoverPresence=object.flyoverPresence;break}break;case"ROAD_FEATURE_STATE_UNSPECIFIED":case 0:message.flyoverPresence=0;break;case"EXISTS":case 1:message.flyoverPresence=1;break;case"DOES_NOT_EXIST":case 2:message.flyoverPresence=2;break}if(object.polylinePointIndex!=null){if(typeof object.polylinePointIndex!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.FlyoverInfo.polylinePointIndex: object expected");message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.fromObject(object.polylinePointIndex,long+1)}return message};FlyoverInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.flyoverPresence=options.enums===String?"ROAD_FEATURE_STATE_UNSPECIFIED":0;object.polylinePointIndex=null}if(message.flyoverPresence!=null&&message.hasOwnProperty("flyoverPresence"))object.flyoverPresence=options.enums===String?$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.flyoverPresence]===undefined?message.flyoverPresence:$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.flyoverPresence]:message.flyoverPresence;if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex"))object.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.toObject(message.polylinePointIndex,options);return object};FlyoverInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FlyoverInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.PolylineDetails.FlyoverInfo"};return FlyoverInfo}();PolylineDetails.NarrowRoadInfo=function(){function NarrowRoadInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}NarrowRoadInfo.prototype.narrowRoadPresence=0;NarrowRoadInfo.prototype.polylinePointIndex=null;NarrowRoadInfo.create=function create(properties){return new NarrowRoadInfo(properties)};NarrowRoadInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.narrowRoadPresence!=null&&Object.hasOwnProperty.call(message,"narrowRoadPresence"))writer.uint32(8).int32(message.narrowRoadPresence);if(message.polylinePointIndex!=null&&Object.hasOwnProperty.call(message,"polylinePointIndex"))$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.encode(message.polylinePointIndex,writer.uint32(18).fork()).ldelim();return writer};NarrowRoadInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};NarrowRoadInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.narrowRoadPresence=reader.int32();break}case 2:{message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};NarrowRoadInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};NarrowRoadInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.narrowRoadPresence!=null&&message.hasOwnProperty("narrowRoadPresence"))switch(message.narrowRoadPresence){default:return"narrowRoadPresence: enum value expected";case 0:case 1:case 2:break}if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex")){var error=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.verify(message.polylinePointIndex,long+1);if(error)return"polylinePointIndex."+error}return null};NarrowRoadInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo;switch(object.narrowRoadPresence){default:if(typeof object.narrowRoadPresence==="number"){message.narrowRoadPresence=object.narrowRoadPresence;break}break;case"ROAD_FEATURE_STATE_UNSPECIFIED":case 0:message.narrowRoadPresence=0;break;case"EXISTS":case 1:message.narrowRoadPresence=1;break;case"DOES_NOT_EXIST":case 2:message.narrowRoadPresence=2;break}if(object.polylinePointIndex!=null){if(typeof object.polylinePointIndex!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.polylinePointIndex: object expected");message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.fromObject(object.polylinePointIndex,long+1)}return message};NarrowRoadInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.narrowRoadPresence=options.enums===String?"ROAD_FEATURE_STATE_UNSPECIFIED":0;object.polylinePointIndex=null}if(message.narrowRoadPresence!=null&&message.hasOwnProperty("narrowRoadPresence"))object.narrowRoadPresence=options.enums===String?$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.narrowRoadPresence]===undefined?message.narrowRoadPresence:$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.narrowRoadPresence]:message.narrowRoadPresence;if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex"))object.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.toObject(message.polylinePointIndex,options);return object};NarrowRoadInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};NarrowRoadInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.PolylineDetails.NarrowRoadInfo"};return NarrowRoadInfo}();return PolylineDetails}();v2.Route=function(){function Route(properties){this.routeLabels=[];this.legs=[];this.warnings=[];this.optimizedIntermediateWaypointIndex=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Route.prototype.routeLabels=$util.emptyArray;Route.prototype.legs=$util.emptyArray;Route.prototype.distanceMeters=0;Route.prototype.duration=null;Route.prototype.staticDuration=null;Route.prototype.polyline=null;Route.prototype.description="";Route.prototype.warnings=$util.emptyArray;Route.prototype.viewport=null;Route.prototype.travelAdvisory=null;Route.prototype.optimizedIntermediateWaypointIndex=$util.emptyArray;Route.prototype.localizedValues=null;Route.prototype.routeToken="";Route.prototype.polylineDetails=null;Route.create=function create(properties){return new Route(properties)};Route.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.legs!=null&&message.legs.length)for(var i=0;i<message.legs.length;++i)$root.google.maps.routing.v2.RouteLeg.encode(message.legs[i],writer.uint32(10).fork()).ldelim();if(message.distanceMeters!=null&&Object.hasOwnProperty.call(message,"distanceMeters"))writer.uint32(16).int32(message.distanceMeters);if(message.duration!=null&&Object.hasOwnProperty.call(message,"duration"))$root.google.protobuf.Duration.encode(message.duration,writer.uint32(26).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.protobuf.Duration.encode(message.staticDuration,writer.uint32(34).fork()).ldelim();if(message.polyline!=null&&Object.hasOwnProperty.call(message,"polyline"))$root.google.maps.routing.v2.Polyline.encode(message.polyline,writer.uint32(42).fork()).ldelim();if(message.description!=null&&Object.hasOwnProperty.call(message,"description"))writer.uint32(50).string(message.description);if(message.warnings!=null&&message.warnings.length)for(var i=0;i<message.warnings.length;++i)writer.uint32(58).string(message.warnings[i]);if(message.viewport!=null&&Object.hasOwnProperty.call(message,"viewport"))$root.google.geo.type.Viewport.encode(message.viewport,writer.uint32(66).fork()).ldelim();if(message.travelAdvisory!=null&&Object.hasOwnProperty.call(message,"travelAdvisory"))$root.google.maps.routing.v2.RouteTravelAdvisory.encode(message.travelAdvisory,writer.uint32(74).fork()).ldelim();if(message.optimizedIntermediateWaypointIndex!=null&&message.optimizedIntermediateWaypointIndex.length){writer.uint32(82).fork();for(var i=0;i<message.optimizedIntermediateWaypointIndex.length;++i)writer.int32(message.optimizedIntermediateWaypointIndex[i]);writer.ldelim()}if(message.localizedValues!=null&&Object.hasOwnProperty.call(message,"localizedValues"))$root.google.maps.routing.v2.Route.RouteLocalizedValues.encode(message.localizedValues,writer.uint32(90).fork()).ldelim();if(message.routeToken!=null&&Object.hasOwnProperty.call(message,"routeToken"))writer.uint32(98).string(message.routeToken);if(message.routeLabels!=null&&message.routeLabels.length){writer.uint32(106).fork();for(var i=0;i<message.routeLabels.length;++i)writer.int32(message.routeLabels[i]);writer.ldelim()}if(message.polylineDetails!=null&&Object.hasOwnProperty.call(message,"polylineDetails"))$root.google.maps.routing.v2.PolylineDetails.encode(message.polylineDetails,writer.uint32(114).fork()).ldelim();return writer};Route.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Route.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.Route;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 13:{if(!(message.routeLabels&&message.routeLabels.length))message.routeLabels=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.routeLabels.push(reader.int32())}else message.routeLabels.push(reader.int32());break}case 1:{if(!(message.legs&&message.legs.length))message.legs=[];message.legs.push($root.google.maps.routing.v2.RouteLeg.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.distanceMeters=reader.int32();break}case 3:{message.duration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.staticDuration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.polyline=$root.google.maps.routing.v2.Polyline.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.description=reader.string();break}case 7:{if(!(message.warnings&&message.warnings.length))message.warnings=[];message.warnings.push(reader.string());break}case 8:{message.viewport=$root.google.geo.type.Viewport.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.travelAdvisory=$root.google.maps.routing.v2.RouteTravelAdvisory.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{if(!(message.optimizedIntermediateWaypointIndex&&message.optimizedIntermediateWaypointIndex.length))message.optimizedIntermediateWaypointIndex=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.optimizedIntermediateWaypointIndex.push(reader.int32())}else message.optimizedIntermediateWaypointIndex.push(reader.int32());break}case 11:{message.localizedValues=$root.google.maps.routing.v2.Route.RouteLocalizedValues.decode(reader,reader.uint32(),undefined,long+1);break}case 12:{message.routeToken=reader.string();break}case 14:{message.polylineDetails=$root.google.maps.routing.v2.PolylineDetails.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Route.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Route.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.routeLabels!=null&&message.hasOwnProperty("routeLabels")){if(!Array.isArray(message.routeLabels))return"routeLabels: array expected";for(var i=0;i<message.routeLabels.length;++i)switch(message.routeLabels[i]){default:return"routeLabels: enum value[] expected";case 0:case 1:case 2:case 3:case 4:break}}if(message.legs!=null&&message.hasOwnProperty("legs")){if(!Array.isArray(message.legs))return"legs: array expected";for(var i=0;i<message.legs.length;++i){var error=$root.google.maps.routing.v2.RouteLeg.verify(message.legs[i],long+1);if(error)return"legs."+error}}if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))if(!$util.isInteger(message.distanceMeters))return"distanceMeters: integer expected";if(message.duration!=null&&message.hasOwnProperty("duration")){var error=$root.google.protobuf.Duration.verify(message.duration,long+1);if(error)return"duration."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.protobuf.Duration.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}if(message.polyline!=null&&message.hasOwnProperty("polyline")){var error=$root.google.maps.routing.v2.Polyline.verify(message.polyline,long+1);if(error)return"polyline."+error}if(message.description!=null&&message.hasOwnProperty("description"))if(!$util.isString(message.description))return"description: string expected";if(message.warnings!=null&&message.hasOwnProperty("warnings")){if(!Array.isArray(message.warnings))return"warnings: array expected";for(var i=0;i<message.warnings.length;++i)if(!$util.isString(message.warnings[i]))return"warnings: string[] expected"}if(message.viewport!=null&&message.hasOwnProperty("viewport")){var error=$root.google.geo.type.Viewport.verify(message.viewport,long+1);if(error)return"viewport."+error}if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory")){var error=$root.google.maps.routing.v2.RouteTravelAdvisory.verify(message.travelAdvisory,long+1);if(error)return"travelAdvisory."+error}if(message.optimizedIntermediateWaypointIndex!=null&&message.hasOwnProperty("optimizedIntermediateWaypointIndex")){if(!Array.isArray(message.optimizedIntermediateWaypointIndex))return"optimizedIntermediateWaypointIndex: array expected";for(var i=0;i<message.optimizedIntermediateWaypointIndex.length;++i)if(!$util.isInteger(message.optimizedIntermediateWaypointIndex[i]))return"optimizedIntermediateWaypointIndex: integer[] expected"}if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues")){var error=$root.google.maps.routing.v2.Route.RouteLocalizedValues.verify(message.localizedValues,long+1);if(error)return"localizedValues."+error}if(message.routeToken!=null&&message.hasOwnProperty("routeToken"))if(!$util.isString(message.routeToken))return"routeToken: string expected";if(message.polylineDetails!=null&&message.hasOwnProperty("polylineDetails")){var error=$root.google.maps.routing.v2.PolylineDetails.verify(message.polylineDetails,long+1);if(error)return"polylineDetails."+error}return null};Route.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.Route)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.Route;if(object.routeLabels){if(!Array.isArray(object.routeLabels))throw TypeError(".google.maps.routing.v2.Route.routeLabels: array expected");message.routeLabels=[];for(var i=0;i<object.routeLabels.length;++i)switch(object.routeLabels[i]){default:if(typeof object.routeLabels[i]==="number"){message.routeLabels[i]=object.routeLabels[i];break}case"ROUTE_LABEL_UNSPECIFIED":case 0:message.routeLabels[i]=0;break;case"DEFAULT_ROUTE":case 1:message.routeLabels[i]=1;break;case"DEFAULT_ROUTE_ALTERNATE":case 2:message.routeLabels[i]=2;break;case"FUEL_EFFICIENT":case 3:message.routeLabels[i]=3;break;case"SHORTER_DISTANCE":case 4:message.routeLabels[i]=4;break}}if(object.legs){if(!Array.isArray(object.legs))throw TypeError(".google.maps.routing.v2.Route.legs: array expected");message.legs=[];for(var i=0;i<object.legs.length;++i){if(typeof object.legs[i]!=="object")throw TypeError(".google.maps.routing.v2.Route.legs: object expected");message.legs[i]=$root.google.maps.routing.v2.RouteLeg.fromObject(object.legs[i],long+1)}}if(object.distanceMeters!=null)message.distanceMeters=object.distanceMeters|0;if(object.duration!=null){if(typeof object.duration!=="object")throw TypeError(".google.maps.routing.v2.Route.duration: object expected");message.duration=$root.google.protobuf.Duration.fromObject(object.duration,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.Route.staticDuration: object expected");message.staticDuration=$root.google.protobuf.Duration.fromObject(object.staticDuration,long+1)}if(object.polyline!=null){if(typeof object.polyline!=="object")throw TypeError(".google.maps.routing.v2.Route.polyline: object expected");message.polyline=$root.google.maps.routing.v2.Polyline.fromObject(object.polyline,long+1)}if(object.description!=null)message.description=String(object.description);if(object.warnings){if(!Array.isArray(object.warnings))throw TypeError(".google.maps.routing.v2.Route.warnings: array expected");message.warnings=[];for(var i=0;i<object.warnings.length;++i)message.warnings[i]=String(object.warnings[i])}if(object.viewport!=null){if(typeof object.viewport!=="object")throw TypeError(".google.maps.routing.v2.Route.viewport: object expected");message.viewport=$root.google.geo.type.Viewport.fromObject(object.viewport,long+1)}if(object.travelAdvisory!=null){if(typeof object.travelAdvisory!=="object")throw TypeError(".google.maps.routing.v2.Route.travelAdvisory: object expected");message.travelAdvisory=$root.google.maps.routing.v2.RouteTravelAdvisory.fromObject(object.travelAdvisory,long+1)}if(object.optimizedIntermediateWaypointIndex){if(!Array.isArray(object.optimizedIntermediateWaypointIndex))throw TypeError(".google.maps.routing.v2.Route.optimizedIntermediateWaypointIndex: array expected");message.optimizedIntermediateWaypointIndex=[];for(var i=0;i<object.optimizedIntermediateWaypointIndex.length;++i)message.optimizedIntermediateWaypointIndex[i]=object.optimizedIntermediateWaypointIndex[i]|0}if(object.localizedValues!=null){if(typeof object.localizedValues!=="object")throw TypeError(".google.maps.routing.v2.Route.localizedValues: object expected");message.localizedValues=$root.google.maps.routing.v2.Route.RouteLocalizedValues.fromObject(object.localizedValues,long+1)}if(object.routeToken!=null)message.routeToken=String(object.routeToken);if(object.polylineDetails!=null){if(typeof object.polylineDetails!=="object")throw TypeError(".google.maps.routing.v2.Route.polylineDetails: object expected");message.polylineDetails=$root.google.maps.routing.v2.PolylineDetails.fromObject(object.polylineDetails,long+1)}return message};Route.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.legs=[];object.warnings=[];object.optimizedIntermediateWaypointIndex=[];object.routeLabels=[]}if(options.defaults){object.distanceMeters=0;object.duration=null;object.staticDuration=null;object.polyline=null;object.description="";object.viewport=null;object.travelAdvisory=null;object.localizedValues=null;object.routeToken="";object.polylineDetails=null}if(message.legs&&message.legs.length){object.legs=[];for(var j=0;j<message.legs.length;++j)object.legs[j]=$root.google.maps.routing.v2.RouteLeg.toObject(message.legs[j],options)}if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))object.distanceMeters=message.distanceMeters;if(message.duration!=null&&message.hasOwnProperty("duration"))object.duration=$root.google.protobuf.Duration.toObject(message.duration,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.protobuf.Duration.toObject(message.staticDuration,options);if(message.polyline!=null&&message.hasOwnProperty("polyline"))object.polyline=$root.google.maps.routing.v2.Polyline.toObject(message.polyline,options);if(message.description!=null&&message.hasOwnProperty("description"))object.description=message.description;if(message.warnings&&message.warnings.length){object.warnings=[];for(var j=0;j<message.warnings.length;++j)object.warnings[j]=message.warnings[j]}if(message.viewport!=null&&message.hasOwnProperty("viewport"))object.viewport=$root.google.geo.type.Viewport.toObject(message.viewport,options);if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory"))object.travelAdvisory=$root.google.maps.routing.v2.RouteTravelAdvisory.toObject(message.travelAdvisory,options);if(message.optimizedIntermediateWaypointIndex&&message.optimizedIntermediateWaypointIndex.length){object.optimizedIntermediateWaypointIndex=[];for(var j=0;j<message.optimizedIntermediateWaypointIndex.length;++j)object.optimizedIntermediateWaypointIndex[j]=message.optimizedIntermediateWaypointIndex[j]}if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues"))object.localizedValues=$root.google.maps.routing.v2.Route.RouteLocalizedValues.toObject(message.localizedValues,options);if(message.routeToken!=null&&message.hasOwnProperty("routeToken"))object.routeToken=message.routeToken;if(message.routeLabels&&message.routeLabels.length){object.routeLabels=[];for(var j=0;j<message.routeLabels.length;++j)object.routeLabels[j]=options.enums===String?$root.google.maps.routing.v2.RouteLabel[message.routeLabels[j]]===undefined?message.routeLabels[j]:$root.google.maps.routing.v2.RouteLabel[message.routeLabels[j]]:message.routeLabels[j]}if(message.polylineDetails!=null&&message.hasOwnProperty("polylineDetails"))object.polylineDetails=$root.google.maps.routing.v2.PolylineDetails.toObject(message.polylineDetails,options);return object};Route.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Route.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.Route"};Route.RouteLocalizedValues=function(){function RouteLocalizedValues(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLocalizedValues.prototype.distance=null;RouteLocalizedValues.prototype.duration=null;RouteLocalizedValues.prototype.staticDuration=null;RouteLocalizedValues.prototype.transitFare=null;RouteLocalizedValues.create=function create(properties){return new RouteLocalizedValues(properties)};RouteLocalizedValues.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.distance!=null&&Object.hasOwnProperty.call(message,"distance"))$root.google.type.LocalizedText.encode(message.distance,writer.uint32(10).fork()).ldelim();if(message.duration!=null&&Object.hasOwnProperty.call(message,"duration"))$root.google.type.LocalizedText.encode(message.duration,writer.uint32(18).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.type.LocalizedText.encode(message.staticDuration,writer.uint32(26).fork()).ldelim();if(message.transitFare!=null&&Object.hasOwnProperty.call(message,"transitFare"))$root.google.type.LocalizedText.encode(message.transitFare,writer.uint32(34).fork()).ldelim();return writer};RouteLocalizedValues.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLocalizedValues.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.Route.RouteLocalizedValues;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.distance=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.duration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.staticDuration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.transitFare=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteLocalizedValues.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLocalizedValues.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.distance!=null&&message.hasOwnProperty("distance")){var error=$root.google.type.LocalizedText.verify(message.distance,long+1);if(error)return"distance."+error}if(message.duration!=null&&message.hasOwnProperty("duration")){var error=$root.google.type.LocalizedText.verify(message.duration,long+1);if(error)return"duration."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.type.LocalizedText.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}if(message.transitFare!=null&&message.hasOwnProperty("transitFare")){var error=$root.google.type.LocalizedText.verify(message.transitFare,long+1);if(error)return"transitFare."+error}return null};RouteLocalizedValues.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.Route.RouteLocalizedValues)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.Route.RouteLocalizedValues;if(object.distance!=null){if(typeof object.distance!=="object")throw TypeError(".google.maps.routing.v2.Route.RouteLocalizedValues.distance: object expected");message.distance=$root.google.type.LocalizedText.fromObject(object.distance,long+1)}if(object.duration!=null){if(typeof object.duration!=="object")throw TypeError(".google.maps.routing.v2.Route.RouteLocalizedValues.duration: object expected");message.duration=$root.google.type.LocalizedText.fromObject(object.duration,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.Route.RouteLocalizedValues.staticDuration: object expected");message.staticDuration=$root.google.type.LocalizedText.fromObject(object.staticDuration,long+1)}if(object.transitFare!=null){if(typeof object.transitFare!=="object")throw TypeError(".google.maps.routing.v2.Route.RouteLocalizedValues.transitFare: object expected");message.transitFare=$root.google.type.LocalizedText.fromObject(object.transitFare,long+1)}return message};RouteLocalizedValues.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.distance=null;object.duration=null;object.staticDuration=null;object.transitFare=null}if(message.distance!=null&&message.hasOwnProperty("distance"))object.distance=$root.google.type.LocalizedText.toObject(message.distance,options);if(message.duration!=null&&message.hasOwnProperty("duration"))object.duration=$root.google.type.LocalizedText.toObject(message.duration,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.type.LocalizedText.toObject(message.staticDuration,options);if(message.transitFare!=null&&message.hasOwnProperty("transitFare"))object.transitFare=$root.google.type.LocalizedText.toObject(message.transitFare,options);return object};RouteLocalizedValues.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLocalizedValues.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.Route.RouteLocalizedValues"};return RouteLocalizedValues}();return Route}();v2.RouteTravelAdvisory=function(){function RouteTravelAdvisory(properties){this.speedReadingIntervals=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteTravelAdvisory.prototype.tollInfo=null;RouteTravelAdvisory.prototype.speedReadingIntervals=$util.emptyArray;RouteTravelAdvisory.prototype.fuelConsumptionMicroliters=$util.Long?$util.Long.fromBits(0,0,false):0;RouteTravelAdvisory.prototype.routeRestrictionsPartiallyIgnored=false;RouteTravelAdvisory.prototype.transitFare=null;RouteTravelAdvisory.create=function create(properties){return new RouteTravelAdvisory(properties)};RouteTravelAdvisory.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.tollInfo!=null&&Object.hasOwnProperty.call(message,"tollInfo"))$root.google.maps.routing.v2.TollInfo.encode(message.tollInfo,writer.uint32(18).fork()).ldelim();if(message.speedReadingIntervals!=null&&message.speedReadingIntervals.length)for(var i=0;i<message.speedReadingIntervals.length;++i)$root.google.maps.routing.v2.SpeedReadingInterval.encode(message.speedReadingIntervals[i],writer.uint32(26).fork()).ldelim();if(message.fuelConsumptionMicroliters!=null&&Object.hasOwnProperty.call(message,"fuelConsumptionMicroliters"))writer.uint32(40).int64(message.fuelConsumptionMicroliters);if(message.routeRestrictionsPartiallyIgnored!=null&&Object.hasOwnProperty.call(message,"routeRestrictionsPartiallyIgnored"))writer.uint32(48).bool(message.routeRestrictionsPartiallyIgnored);if(message.transitFare!=null&&Object.hasOwnProperty.call(message,"transitFare"))$root.google.type.Money.encode(message.transitFare,writer.uint32(58).fork()).ldelim();return writer};RouteTravelAdvisory.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteTravelAdvisory.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteTravelAdvisory;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 2:{message.tollInfo=$root.google.maps.routing.v2.TollInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{if(!(message.speedReadingIntervals&&message.speedReadingIntervals.length))message.speedReadingIntervals=[];message.speedReadingIntervals.push($root.google.maps.routing.v2.SpeedReadingInterval.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{message.fuelConsumptionMicroliters=reader.int64();break}case 6:{message.routeRestrictionsPartiallyIgnored=reader.bool();break}case 7:{message.transitFare=$root.google.type.Money.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteTravelAdvisory.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteTravelAdvisory.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.tollInfo!=null&&message.hasOwnProperty("tollInfo")){var error=$root.google.maps.routing.v2.TollInfo.verify(message.tollInfo,long+1);if(error)return"tollInfo."+error}if(message.speedReadingIntervals!=null&&message.hasOwnProperty("speedReadingIntervals")){if(!Array.isArray(message.speedReadingIntervals))return"speedReadingIntervals: array expected";for(var i=0;i<message.speedReadingIntervals.length;++i){var error=$root.google.maps.routing.v2.SpeedReadingInterval.verify(message.speedReadingIntervals[i],long+1);if(error)return"speedReadingIntervals."+error}}if(message.fuelConsumptionMicroliters!=null&&message.hasOwnProperty("fuelConsumptionMicroliters"))if(!$util.isInteger(message.fuelConsumptionMicroliters)&&!(message.fuelConsumptionMicroliters&&$util.isInteger(message.fuelConsumptionMicroliters.low)&&$util.isInteger(message.fuelConsumptionMicroliters.high)))return"fuelConsumptionMicroliters: integer|Long expected";if(message.routeRestrictionsPartiallyIgnored!=null&&message.hasOwnProperty("routeRestrictionsPartiallyIgnored"))if(typeof message.routeRestrictionsPartiallyIgnored!=="boolean")return"routeRestrictionsPartiallyIgnored: boolean expected";if(message.transitFare!=null&&message.hasOwnProperty("transitFare")){var error=$root.google.type.Money.verify(message.transitFare,long+1);if(error)return"transitFare."+error}return null};RouteTravelAdvisory.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteTravelAdvisory)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteTravelAdvisory;if(object.tollInfo!=null){if(typeof object.tollInfo!=="object")throw TypeError(".google.maps.routing.v2.RouteTravelAdvisory.tollInfo: object expected");message.tollInfo=$root.google.maps.routing.v2.TollInfo.fromObject(object.tollInfo,long+1)}if(object.speedReadingIntervals){if(!Array.isArray(object.speedReadingIntervals))throw TypeError(".google.maps.routing.v2.RouteTravelAdvisory.speedReadingIntervals: array expected");message.speedReadingIntervals=[];for(var i=0;i<object.speedReadingIntervals.length;++i){if(typeof object.speedReadingIntervals[i]!=="object")throw TypeError(".google.maps.routing.v2.RouteTravelAdvisory.speedReadingIntervals: object expected");message.speedReadingIntervals[i]=$root.google.maps.routing.v2.SpeedReadingInterval.fromObject(object.speedReadingIntervals[i],long+1)}}if(object.fuelConsumptionMicroliters!=null)if($util.Long)(message.fuelConsumptionMicroliters=$util.Long.fromValue(object.fuelConsumptionMicroliters)).unsigned=false;else if(typeof object.fuelConsumptionMicroliters==="string")message.fuelConsumptionMicroliters=parseInt(object.fuelConsumptionMicroliters,10);else if(typeof object.fuelConsumptionMicroliters==="number")message.fuelConsumptionMicroliters=object.fuelConsumptionMicroliters;else if(typeof object.fuelConsumptionMicroliters==="object")message.fuelConsumptionMicroliters=new $util.LongBits(object.fuelConsumptionMicroliters.low>>>0,object.fuelConsumptionMicroliters.high>>>0).toNumber();if(object.routeRestrictionsPartiallyIgnored!=null)message.routeRestrictionsPartiallyIgnored=Boolean(object.routeRestrictionsPartiallyIgnored);if(object.transitFare!=null){if(typeof object.transitFare!=="object")throw TypeError(".google.maps.routing.v2.RouteTravelAdvisory.transitFare: object expected");message.transitFare=$root.google.type.Money.fromObject(object.transitFare,long+1)}return message};RouteTravelAdvisory.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.speedReadingIntervals=[];if(options.defaults){object.tollInfo=null;if($util.Long){var long=new $util.Long(0,0,false);object.fuelConsumptionMicroliters=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.fuelConsumptionMicroliters=options.longs===String?"0":0;object.routeRestrictionsPartiallyIgnored=false;object.transitFare=null}if(message.tollInfo!=null&&message.hasOwnProperty("tollInfo"))object.tollInfo=$root.google.maps.routing.v2.TollInfo.toObject(message.tollInfo,options);if(message.speedReadingIntervals&&message.speedReadingIntervals.length){object.speedReadingIntervals=[];for(var j=0;j<message.speedReadingIntervals.length;++j)object.speedReadingIntervals[j]=$root.google.maps.routing.v2.SpeedReadingInterval.toObject(message.speedReadingIntervals[j],options)}if(message.fuelConsumptionMicroliters!=null&&message.hasOwnProperty("fuelConsumptionMicroliters"))if(typeof message.fuelConsumptionMicroliters==="number")object.fuelConsumptionMicroliters=options.longs===String?String(message.fuelConsumptionMicroliters):message.fuelConsumptionMicroliters;else object.fuelConsumptionMicroliters=options.longs===String?$util.Long.prototype.toString.call(message.fuelConsumptionMicroliters):options.longs===Number?new $util.LongBits(message.fuelConsumptionMicroliters.low>>>0,message.fuelConsumptionMicroliters.high>>>0).toNumber():message.fuelConsumptionMicroliters;if(message.routeRestrictionsPartiallyIgnored!=null&&message.hasOwnProperty("routeRestrictionsPartiallyIgnored"))object.routeRestrictionsPartiallyIgnored=message.routeRestrictionsPartiallyIgnored;if(message.transitFare!=null&&message.hasOwnProperty("transitFare"))object.transitFare=$root.google.type.Money.toObject(message.transitFare,options);return object};RouteTravelAdvisory.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteTravelAdvisory.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteTravelAdvisory"};return RouteTravelAdvisory}();v2.RouteLegTravelAdvisory=function(){function RouteLegTravelAdvisory(properties){this.speedReadingIntervals=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLegTravelAdvisory.prototype.tollInfo=null;RouteLegTravelAdvisory.prototype.speedReadingIntervals=$util.emptyArray;RouteLegTravelAdvisory.create=function create(properties){return new RouteLegTravelAdvisory(properties)};RouteLegTravelAdvisory.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.tollInfo!=null&&Object.hasOwnProperty.call(message,"tollInfo"))$root.google.maps.routing.v2.TollInfo.encode(message.tollInfo,writer.uint32(10).fork()).ldelim();if(message.speedReadingIntervals!=null&&message.speedReadingIntervals.length)for(var i=0;i<message.speedReadingIntervals.length;++i)$root.google.maps.routing.v2.SpeedReadingInterval.encode(message.speedReadingIntervals[i],writer.uint32(18).fork()).ldelim();return writer};RouteLegTravelAdvisory.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLegTravelAdvisory.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegTravelAdvisory;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.tollInfo=$root.google.maps.routing.v2.TollInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(!(message.speedReadingIntervals&&message.speedReadingIntervals.length))message.speedReadingIntervals=[];message.speedReadingIntervals.push($root.google.maps.routing.v2.SpeedReadingInterval.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};RouteLegTravelAdvisory.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLegTravelAdvisory.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.tollInfo!=null&&message.hasOwnProperty("tollInfo")){var error=$root.google.maps.routing.v2.TollInfo.verify(message.tollInfo,long+1);if(error)return"tollInfo."+error}if(message.speedReadingIntervals!=null&&message.hasOwnProperty("speedReadingIntervals")){if(!Array.isArray(message.speedReadingIntervals))return"speedReadingIntervals: array expected";for(var i=0;i<message.speedReadingIntervals.length;++i){var error=$root.google.maps.routing.v2.SpeedReadingInterval.verify(message.speedReadingIntervals[i],long+1);if(error)return"speedReadingIntervals."+error}}return null};RouteLegTravelAdvisory.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegTravelAdvisory)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegTravelAdvisory;if(object.tollInfo!=null){if(typeof object.tollInfo!=="object")throw TypeError(".google.maps.routing.v2.RouteLegTravelAdvisory.tollInfo: object expected");message.tollInfo=$root.google.maps.routing.v2.TollInfo.fromObject(object.tollInfo,long+1)}if(object.speedReadingIntervals){if(!Array.isArray(object.speedReadingIntervals))throw TypeError(".google.maps.routing.v2.RouteLegTravelAdvisory.speedReadingIntervals: array expected");message.speedReadingIntervals=[];for(var i=0;i<object.speedReadingIntervals.length;++i){if(typeof object.speedReadingIntervals[i]!=="object")throw TypeError(".google.maps.routing.v2.RouteLegTravelAdvisory.speedReadingIntervals: object expected");message.speedReadingIntervals[i]=$root.google.maps.routing.v2.SpeedReadingInterval.fromObject(object.speedReadingIntervals[i],long+1)}}return message};RouteLegTravelAdvisory.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.speedReadingIntervals=[];if(options.defaults)object.tollInfo=null;if(message.tollInfo!=null&&message.hasOwnProperty("tollInfo"))object.tollInfo=$root.google.maps.routing.v2.TollInfo.toObject(message.tollInfo,options);if(message.speedReadingIntervals&&message.speedReadingIntervals.length){object.speedReadingIntervals=[];for(var j=0;j<message.speedReadingIntervals.length;++j)object.speedReadingIntervals[j]=$root.google.maps.routing.v2.SpeedReadingInterval.toObject(message.speedReadingIntervals[j],options)}return object};RouteLegTravelAdvisory.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLegTravelAdvisory.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegTravelAdvisory"};return RouteLegTravelAdvisory}();v2.RouteLegStepTravelAdvisory=function(){function RouteLegStepTravelAdvisory(properties){this.speedReadingIntervals=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLegStepTravelAdvisory.prototype.speedReadingIntervals=$util.emptyArray;RouteLegStepTravelAdvisory.create=function create(properties){return new RouteLegStepTravelAdvisory(properties)};RouteLegStepTravelAdvisory.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.speedReadingIntervals!=null&&message.speedReadingIntervals.length)for(var i=0;i<message.speedReadingIntervals.length;++i)$root.google.maps.routing.v2.SpeedReadingInterval.encode(message.speedReadingIntervals[i],writer.uint32(10).fork()).ldelim();return writer};RouteLegStepTravelAdvisory.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLegStepTravelAdvisory.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegStepTravelAdvisory;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.speedReadingIntervals&&message.speedReadingIntervals.length))message.speedReadingIntervals=[];message.speedReadingIntervals.push($root.google.maps.routing.v2.SpeedReadingInterval.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};RouteLegStepTravelAdvisory.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLegStepTravelAdvisory.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.speedReadingIntervals!=null&&message.hasOwnProperty("speedReadingIntervals")){if(!Array.isArray(message.speedReadingIntervals))return"speedReadingIntervals: array expected";for(var i=0;i<message.speedReadingIntervals.length;++i){var error=$root.google.maps.routing.v2.SpeedReadingInterval.verify(message.speedReadingIntervals[i],long+1);if(error)return"speedReadingIntervals."+error}}return null};RouteLegStepTravelAdvisory.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegStepTravelAdvisory)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegStepTravelAdvisory;if(object.speedReadingIntervals){if(!Array.isArray(object.speedReadingIntervals))throw TypeError(".google.maps.routing.v2.RouteLegStepTravelAdvisory.speedReadingIntervals: array expected");message.speedReadingIntervals=[];for(var i=0;i<object.speedReadingIntervals.length;++i){if(typeof object.speedReadingIntervals[i]!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTravelAdvisory.speedReadingIntervals: object expected");message.speedReadingIntervals[i]=$root.google.maps.routing.v2.SpeedReadingInterval.fromObject(object.speedReadingIntervals[i],long+1)}}return message};RouteLegStepTravelAdvisory.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.speedReadingIntervals=[];if(message.speedReadingIntervals&&message.speedReadingIntervals.length){object.speedReadingIntervals=[];for(var j=0;j<message.speedReadingIntervals.length;++j)object.speedReadingIntervals[j]=$root.google.maps.routing.v2.SpeedReadingInterval.toObject(message.speedReadingIntervals[j],options)}return object};RouteLegStepTravelAdvisory.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLegStepTravelAdvisory.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegStepTravelAdvisory"};return RouteLegStepTravelAdvisory}();v2.RouteLeg=function(){function RouteLeg(properties){this.steps=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLeg.prototype.distanceMeters=0;RouteLeg.prototype.duration=null;RouteLeg.prototype.staticDuration=null;RouteLeg.prototype.polyline=null;RouteLeg.prototype.startLocation=null;RouteLeg.prototype.endLocation=null;RouteLeg.prototype.steps=$util.emptyArray;RouteLeg.prototype.travelAdvisory=null;RouteLeg.prototype.localizedValues=null;RouteLeg.prototype.stepsOverview=null;RouteLeg.create=function create(properties){return new RouteLeg(properties)};RouteLeg.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.distanceMeters!=null&&Object.hasOwnProperty.call(message,"distanceMeters"))writer.uint32(8).int32(message.distanceMeters);if(message.duration!=null&&Object.hasOwnProperty.call(message,"duration"))$root.google.protobuf.Duration.encode(message.duration,writer.uint32(18).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.protobuf.Duration.encode(message.staticDuration,writer.uint32(26).fork()).ldelim();if(message.polyline!=null&&Object.hasOwnProperty.call(message,"polyline"))$root.google.maps.routing.v2.Polyline.encode(message.polyline,writer.uint32(34).fork()).ldelim();if(message.startLocation!=null&&Object.hasOwnProperty.call(message,"startLocation"))$root.google.maps.routing.v2.Location.encode(message.startLocation,writer.uint32(42).fork()).ldelim();if(message.endLocation!=null&&Object.hasOwnProperty.call(message,"endLocation"))$root.google.maps.routing.v2.Location.encode(message.endLocation,writer.uint32(50).fork()).ldelim();if(message.steps!=null&&message.steps.length)for(var i=0;i<message.steps.length;++i)$root.google.maps.routing.v2.RouteLegStep.encode(message.steps[i],writer.uint32(58).fork()).ldelim();if(message.travelAdvisory!=null&&Object.hasOwnProperty.call(message,"travelAdvisory"))$root.google.maps.routing.v2.RouteLegTravelAdvisory.encode(message.travelAdvisory,writer.uint32(66).fork()).ldelim();if(message.localizedValues!=null&&Object.hasOwnProperty.call(message,"localizedValues"))$root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.encode(message.localizedValues,writer.uint32(74).fork()).ldelim();if(message.stepsOverview!=null&&Object.hasOwnProperty.call(message,"stepsOverview"))$root.google.maps.routing.v2.RouteLeg.StepsOverview.encode(message.stepsOverview,writer.uint32(82).fork()).ldelim();return writer};RouteLeg.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLeg.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLeg;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.distanceMeters=reader.int32();break}case 2:{message.duration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.staticDuration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.polyline=$root.google.maps.routing.v2.Polyline.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.startLocation=$root.google.maps.routing.v2.Location.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.endLocation=$root.google.maps.routing.v2.Location.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{if(!(message.steps&&message.steps.length))message.steps=[];message.steps.push($root.google.maps.routing.v2.RouteLegStep.decode(reader,reader.uint32(),undefined,long+1));break}case 8:{message.travelAdvisory=$root.google.maps.routing.v2.RouteLegTravelAdvisory.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.localizedValues=$root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.stepsOverview=$root.google.maps.routing.v2.RouteLeg.StepsOverview.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteLeg.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLeg.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))if(!$util.isInteger(message.distanceMeters))return"distanceMeters: integer expected";if(message.duration!=null&&message.hasOwnProperty("duration")){var error=$root.google.protobuf.Duration.verify(message.duration,long+1);if(error)return"duration."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.protobuf.Duration.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}if(message.polyline!=null&&message.hasOwnProperty("polyline")){var error=$root.google.maps.routing.v2.Polyline.verify(message.polyline,long+1);if(error)return"polyline."+error}if(message.startLocation!=null&&message.hasOwnProperty("startLocation")){var error=$root.google.maps.routing.v2.Location.verify(message.startLocation,long+1);if(error)return"startLocation."+error}if(message.endLocation!=null&&message.hasOwnProperty("endLocation")){var error=$root.google.maps.routing.v2.Location.verify(message.endLocation,long+1);if(error)return"endLocation."+error}if(message.steps!=null&&message.hasOwnProperty("steps")){if(!Array.isArray(message.steps))return"steps: array expected";for(var i=0;i<message.steps.length;++i){var error=$root.google.maps.routing.v2.RouteLegStep.verify(message.steps[i],long+1);if(error)return"steps."+error}}if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory")){var error=$root.google.maps.routing.v2.RouteLegTravelAdvisory.verify(message.travelAdvisory,long+1);if(error)return"travelAdvisory."+error}if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues")){var error=$root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.verify(message.localizedValues,long+1);if(error)return"localizedValues."+error}if(message.stepsOverview!=null&&message.hasOwnProperty("stepsOverview")){var error=$root.google.maps.routing.v2.RouteLeg.StepsOverview.verify(message.stepsOverview,long+1);if(error)return"stepsOverview."+error}return null};RouteLeg.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLeg)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLeg;if(object.distanceMeters!=null)message.distanceMeters=object.distanceMeters|0;if(object.duration!=null){if(typeof object.duration!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.duration: object expected");message.duration=$root.google.protobuf.Duration.fromObject(object.duration,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.staticDuration: object expected");message.staticDuration=$root.google.protobuf.Duration.fromObject(object.staticDuration,long+1)}if(object.polyline!=null){if(typeof object.polyline!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.polyline: object expected");message.polyline=$root.google.maps.routing.v2.Polyline.fromObject(object.polyline,long+1)}if(object.startLocation!=null){if(typeof object.startLocation!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.startLocation: object expected");message.startLocation=$root.google.maps.routing.v2.Location.fromObject(object.startLocation,long+1)}if(object.endLocation!=null){if(typeof object.endLocation!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.endLocation: object expected");message.endLocation=$root.google.maps.routing.v2.Location.fromObject(object.endLocation,long+1)}if(object.steps){if(!Array.isArray(object.steps))throw TypeError(".google.maps.routing.v2.RouteLeg.steps: array expected");message.steps=[];for(var i=0;i<object.steps.length;++i){if(typeof object.steps[i]!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.steps: object expected");message.steps[i]=$root.google.maps.routing.v2.RouteLegStep.fromObject(object.steps[i],long+1)}}if(object.travelAdvisory!=null){if(typeof object.travelAdvisory!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.travelAdvisory: object expected");message.travelAdvisory=$root.google.maps.routing.v2.RouteLegTravelAdvisory.fromObject(object.travelAdvisory,long+1)}if(object.localizedValues!=null){if(typeof object.localizedValues!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.localizedValues: object expected");message.localizedValues=$root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.fromObject(object.localizedValues,long+1)}if(object.stepsOverview!=null){if(typeof object.stepsOverview!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.stepsOverview: object expected");message.stepsOverview=$root.google.maps.routing.v2.RouteLeg.StepsOverview.fromObject(object.stepsOverview,long+1)}return message};RouteLeg.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.steps=[];if(options.defaults){object.distanceMeters=0;object.duration=null;object.staticDuration=null;object.polyline=null;object.startLocation=null;object.endLocation=null;object.travelAdvisory=null;object.localizedValues=null;object.stepsOverview=null}if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))object.distanceMeters=message.distanceMeters;if(message.duration!=null&&message.hasOwnProperty("duration"))object.duration=$root.google.protobuf.Duration.toObject(message.duration,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.protobuf.Duration.toObject(message.staticDuration,options);if(message.polyline!=null&&message.hasOwnProperty("polyline"))object.polyline=$root.google.maps.routing.v2.Polyline.toObject(message.polyline,options);if(message.startLocation!=null&&message.hasOwnProperty("startLocation"))object.startLocation=$root.google.maps.routing.v2.Location.toObject(message.startLocation,options);if(message.endLocation!=null&&message.hasOwnProperty("endLocation"))object.endLocation=$root.google.maps.routing.v2.Location.toObject(message.endLocation,options);if(message.steps&&message.steps.length){object.steps=[];for(var j=0;j<message.steps.length;++j)object.steps[j]=$root.google.maps.routing.v2.RouteLegStep.toObject(message.steps[j],options)}if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory"))object.travelAdvisory=$root.google.maps.routing.v2.RouteLegTravelAdvisory.toObject(message.travelAdvisory,options);if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues"))object.localizedValues=$root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.toObject(message.localizedValues,options);if(message.stepsOverview!=null&&message.hasOwnProperty("stepsOverview"))object.stepsOverview=$root.google.maps.routing.v2.RouteLeg.StepsOverview.toObject(message.stepsOverview,options);return object};RouteLeg.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLeg.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLeg"};RouteLeg.RouteLegLocalizedValues=function(){function RouteLegLocalizedValues(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLegLocalizedValues.prototype.distance=null;RouteLegLocalizedValues.prototype.duration=null;RouteLegLocalizedValues.prototype.staticDuration=null;RouteLegLocalizedValues.create=function create(properties){return new RouteLegLocalizedValues(properties)};RouteLegLocalizedValues.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.distance!=null&&Object.hasOwnProperty.call(message,"distance"))$root.google.type.LocalizedText.encode(message.distance,writer.uint32(10).fork()).ldelim();if(message.duration!=null&&Object.hasOwnProperty.call(message,"duration"))$root.google.type.LocalizedText.encode(message.duration,writer.uint32(18).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.type.LocalizedText.encode(message.staticDuration,writer.uint32(26).fork()).ldelim();return writer};RouteLegLocalizedValues.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLegLocalizedValues.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.distance=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.duration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.staticDuration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteLegLocalizedValues.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLegLocalizedValues.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.distance!=null&&message.hasOwnProperty("distance")){var error=$root.google.type.LocalizedText.verify(message.distance,long+1);if(error)return"distance."+error}if(message.duration!=null&&message.hasOwnProperty("duration")){var error=$root.google.type.LocalizedText.verify(message.duration,long+1);if(error)return"duration."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.type.LocalizedText.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}return null};RouteLegLocalizedValues.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues;if(object.distance!=null){if(typeof object.distance!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.distance: object expected");message.distance=$root.google.type.LocalizedText.fromObject(object.distance,long+1)}if(object.duration!=null){if(typeof object.duration!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.duration: object expected");message.duration=$root.google.type.LocalizedText.fromObject(object.duration,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.staticDuration: object expected");message.staticDuration=$root.google.type.LocalizedText.fromObject(object.staticDuration,long+1)}return message};RouteLegLocalizedValues.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.distance=null;object.duration=null;object.staticDuration=null}if(message.distance!=null&&message.hasOwnProperty("distance"))object.distance=$root.google.type.LocalizedText.toObject(message.distance,options);if(message.duration!=null&&message.hasOwnProperty("duration"))object.duration=$root.google.type.LocalizedText.toObject(message.duration,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.type.LocalizedText.toObject(message.staticDuration,options);return object};RouteLegLocalizedValues.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLegLocalizedValues.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues"};return RouteLegLocalizedValues}();RouteLeg.StepsOverview=function(){function StepsOverview(properties){this.multiModalSegments=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}StepsOverview.prototype.multiModalSegments=$util.emptyArray;StepsOverview.create=function create(properties){return new StepsOverview(properties)};StepsOverview.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.multiModalSegments!=null&&message.multiModalSegments.length)for(var i=0;i<message.multiModalSegments.length;++i)$root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment.encode(message.multiModalSegments[i],writer.uint32(10).fork()).ldelim();return writer};StepsOverview.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};StepsOverview.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLeg.StepsOverview;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.multiModalSegments&&message.multiModalSegments.length))message.multiModalSegments=[];message.multiModalSegments.push($root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};StepsOverview.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StepsOverview.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.multiModalSegments!=null&&message.hasOwnProperty("multiModalSegments")){if(!Array.isArray(message.multiModalSegments))return"multiModalSegments: array expected";for(var i=0;i<message.multiModalSegments.length;++i){var error=$root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment.verify(message.multiModalSegments[i],long+1);if(error)return"multiModalSegments."+error}}return null};StepsOverview.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLeg.StepsOverview)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLeg.StepsOverview;if(object.multiModalSegments){if(!Array.isArray(object.multiModalSegments))throw TypeError(".google.maps.routing.v2.RouteLeg.StepsOverview.multiModalSegments: array expected");message.multiModalSegments=[];for(var i=0;i<object.multiModalSegments.length;++i){if(typeof object.multiModalSegments[i]!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.StepsOverview.multiModalSegments: object expected");message.multiModalSegments[i]=$root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment.fromObject(object.multiModalSegments[i],long+1)}}return message};StepsOverview.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.multiModalSegments=[];if(message.multiModalSegments&&message.multiModalSegments.length){object.multiModalSegments=[];for(var j=0;j<message.multiModalSegments.length;++j)object.multiModalSegments[j]=$root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment.toObject(message.multiModalSegments[j],options)}return object};StepsOverview.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};StepsOverview.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLeg.StepsOverview"};StepsOverview.MultiModalSegment=function(){function MultiModalSegment(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}MultiModalSegment.prototype.stepStartIndex=null;MultiModalSegment.prototype.stepEndIndex=null;MultiModalSegment.prototype.navigationInstruction=null;MultiModalSegment.prototype.travelMode=0;var $oneOfFields;Object.defineProperty(MultiModalSegment.prototype,"_stepStartIndex",{get:$util.oneOfGetter($oneOfFields=["stepStartIndex"]),set:$util.oneOfSetter($oneOfFields)});Object.defineProperty(MultiModalSegment.prototype,"_stepEndIndex",{get:$util.oneOfGetter($oneOfFields=["stepEndIndex"]),set:$util.oneOfSetter($oneOfFields)});MultiModalSegment.create=function create(properties){return new MultiModalSegment(properties)};MultiModalSegment.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.stepStartIndex!=null&&Object.hasOwnProperty.call(message,"stepStartIndex"))writer.uint32(8).int32(message.stepStartIndex);if(message.stepEndIndex!=null&&Object.hasOwnProperty.call(message,"stepEndIndex"))writer.uint32(16).int32(message.stepEndIndex);if(message.navigationInstruction!=null&&Object.hasOwnProperty.call(message,"navigationInstruction"))$root.google.maps.routing.v2.NavigationInstruction.encode(message.navigationInstruction,writer.uint32(26).fork()).ldelim();if(message.travelMode!=null&&Object.hasOwnProperty.call(message,"travelMode"))writer.uint32(32).int32(message.travelMode);return writer};MultiModalSegment.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};MultiModalSegment.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.stepStartIndex=reader.int32();break}case 2:{message.stepEndIndex=reader.int32();break}case 3:{message.navigationInstruction=$root.google.maps.routing.v2.NavigationInstruction.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.travelMode=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};MultiModalSegment.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MultiModalSegment.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.stepStartIndex!=null&&message.hasOwnProperty("stepStartIndex")){properties._stepStartIndex=1;if(!$util.isInteger(message.stepStartIndex))return"stepStartIndex: integer expected"}if(message.stepEndIndex!=null&&message.hasOwnProperty("stepEndIndex")){properties._stepEndIndex=1;if(!$util.isInteger(message.stepEndIndex))return"stepEndIndex: integer expected"}if(message.navigationInstruction!=null&&message.hasOwnProperty("navigationInstruction")){var error=$root.google.maps.routing.v2.NavigationInstruction.verify(message.navigationInstruction,long+1);if(error)return"navigationInstruction."+error}if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))switch(message.travelMode){default:return"travelMode: enum value expected";case 0:case 1:case 2:case 3:case 4:case 7:break}return null};MultiModalSegment.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment;if(object.stepStartIndex!=null)message.stepStartIndex=object.stepStartIndex|0;if(object.stepEndIndex!=null)message.stepEndIndex=object.stepEndIndex|0;if(object.navigationInstruction!=null){if(typeof object.navigationInstruction!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment.navigationInstruction: object expected");message.navigationInstruction=$root.google.maps.routing.v2.NavigationInstruction.fromObject(object.navigationInstruction,long+1)}switch(object.travelMode){default:if(typeof object.travelMode==="number"){message.travelMode=object.travelMode;break}break;case"TRAVEL_MODE_UNSPECIFIED":case 0:message.travelMode=0;break;case"DRIVE":case 1:message.travelMode=1;break;case"BICYCLE":case 2:message.travelMode=2;break;case"WALK":case 3:message.travelMode=3;break;case"TWO_WHEELER":case 4:message.travelMode=4;break;case"TRANSIT":case 7:message.travelMode=7;break}return message};MultiModalSegment.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.navigationInstruction=null;object.travelMode=options.enums===String?"TRAVEL_MODE_UNSPECIFIED":0}if(message.stepStartIndex!=null&&message.hasOwnProperty("stepStartIndex")){object.stepStartIndex=message.stepStartIndex;if(options.oneofs)object._stepStartIndex="stepStartIndex"}if(message.stepEndIndex!=null&&message.hasOwnProperty("stepEndIndex")){object.stepEndIndex=message.stepEndIndex;if(options.oneofs)object._stepEndIndex="stepEndIndex"}if(message.navigationInstruction!=null&&message.hasOwnProperty("navigationInstruction"))object.navigationInstruction=$root.google.maps.routing.v2.NavigationInstruction.toObject(message.navigationInstruction,options);if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))object.travelMode=options.enums===String?$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]===undefined?message.travelMode:$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]:message.travelMode;return object};MultiModalSegment.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};MultiModalSegment.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment"};return MultiModalSegment}();return StepsOverview}();return RouteLeg}();v2.RouteLegStep=function(){function RouteLegStep(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLegStep.prototype.distanceMeters=0;RouteLegStep.prototype.staticDuration=null;RouteLegStep.prototype.polyline=null;RouteLegStep.prototype.startLocation=null;RouteLegStep.prototype.endLocation=null;RouteLegStep.prototype.navigationInstruction=null;RouteLegStep.prototype.travelAdvisory=null;RouteLegStep.prototype.localizedValues=null;RouteLegStep.prototype.transitDetails=null;RouteLegStep.prototype.travelMode=0;RouteLegStep.create=function create(properties){return new RouteLegStep(properties)};RouteLegStep.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.distanceMeters!=null&&Object.hasOwnProperty.call(message,"distanceMeters"))writer.uint32(8).int32(message.distanceMeters);if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.protobuf.Duration.encode(message.staticDuration,writer.uint32(18).fork()).ldelim();if(message.polyline!=null&&Object.hasOwnProperty.call(message,"polyline"))$root.google.maps.routing.v2.Polyline.encode(message.polyline,writer.uint32(26).fork()).ldelim();if(message.startLocation!=null&&Object.hasOwnProperty.call(message,"startLocation"))$root.google.maps.routing.v2.Location.encode(message.startLocation,writer.uint32(34).fork()).ldelim();if(message.endLocation!=null&&Object.hasOwnProperty.call(message,"endLocation"))$root.google.maps.routing.v2.Location.encode(message.endLocation,writer.uint32(42).fork()).ldelim();if(message.navigationInstruction!=null&&Object.hasOwnProperty.call(message,"navigationInstruction"))$root.google.maps.routing.v2.NavigationInstruction.encode(message.navigationInstruction,writer.uint32(50).fork()).ldelim();if(message.travelAdvisory!=null&&Object.hasOwnProperty.call(message,"travelAdvisory"))$root.google.maps.routing.v2.RouteLegStepTravelAdvisory.encode(message.travelAdvisory,writer.uint32(58).fork()).ldelim();if(message.localizedValues!=null&&Object.hasOwnProperty.call(message,"localizedValues"))$root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.encode(message.localizedValues,writer.uint32(66).fork()).ldelim();if(message.transitDetails!=null&&Object.hasOwnProperty.call(message,"transitDetails"))$root.google.maps.routing.v2.RouteLegStepTransitDetails.encode(message.transitDetails,writer.uint32(74).fork()).ldelim();if(message.travelMode!=null&&Object.hasOwnProperty.call(message,"travelMode"))writer.uint32(80).int32(message.travelMode);return writer};RouteLegStep.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLegStep.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegStep;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.distanceMeters=reader.int32();break}case 2:{message.staticDuration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.polyline=$root.google.maps.routing.v2.Polyline.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.startLocation=$root.google.maps.routing.v2.Location.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.endLocation=$root.google.maps.routing.v2.Location.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.navigationInstruction=$root.google.maps.routing.v2.NavigationInstruction.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.travelAdvisory=$root.google.maps.routing.v2.RouteLegStepTravelAdvisory.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.localizedValues=$root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.transitDetails=$root.google.maps.routing.v2.RouteLegStepTransitDetails.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.travelMode=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};RouteLegStep.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLegStep.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))if(!$util.isInteger(message.distanceMeters))return"distanceMeters: integer expected";if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.protobuf.Duration.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}if(message.polyline!=null&&message.hasOwnProperty("polyline")){var error=$root.google.maps.routing.v2.Polyline.verify(message.polyline,long+1);if(error)return"polyline."+error}if(message.startLocation!=null&&message.hasOwnProperty("startLocation")){var error=$root.google.maps.routing.v2.Location.verify(message.startLocation,long+1);if(error)return"startLocation."+error}if(message.endLocation!=null&&message.hasOwnProperty("endLocation")){var error=$root.google.maps.routing.v2.Location.verify(message.endLocation,long+1);if(error)return"endLocation."+error}if(message.navigationInstruction!=null&&message.hasOwnProperty("navigationInstruction")){var error=$root.google.maps.routing.v2.NavigationInstruction.verify(message.navigationInstruction,long+1);if(error)return"navigationInstruction."+error}if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory")){var error=$root.google.maps.routing.v2.RouteLegStepTravelAdvisory.verify(message.travelAdvisory,long+1);if(error)return"travelAdvisory."+error}if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues")){var error=$root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.verify(message.localizedValues,long+1);if(error)return"localizedValues."+error}if(message.transitDetails!=null&&message.hasOwnProperty("transitDetails")){var error=$root.google.maps.routing.v2.RouteLegStepTransitDetails.verify(message.transitDetails,long+1);if(error)return"transitDetails."+error}if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))switch(message.travelMode){default:return"travelMode: enum value expected";case 0:case 1:case 2:case 3:case 4:case 7:break}return null};RouteLegStep.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegStep)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegStep;if(object.distanceMeters!=null)message.distanceMeters=object.distanceMeters|0;if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.staticDuration: object expected");message.staticDuration=$root.google.protobuf.Duration.fromObject(object.staticDuration,long+1)}if(object.polyline!=null){if(typeof object.polyline!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.polyline: object expected");message.polyline=$root.google.maps.routing.v2.Polyline.fromObject(object.polyline,long+1)}if(object.startLocation!=null){if(typeof object.startLocation!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.startLocation: object expected");message.startLocation=$root.google.maps.routing.v2.Location.fromObject(object.startLocation,long+1)}if(object.endLocation!=null){if(typeof object.endLocation!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.endLocation: object expected");message.endLocation=$root.google.maps.routing.v2.Location.fromObject(object.endLocation,long+1)}if(object.navigationInstruction!=null){if(typeof object.navigationInstruction!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.navigationInstruction: object expected");message.navigationInstruction=$root.google.maps.routing.v2.NavigationInstruction.fromObject(object.navigationInstruction,long+1)}if(object.travelAdvisory!=null){if(typeof object.travelAdvisory!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.travelAdvisory: object expected");message.travelAdvisory=$root.google.maps.routing.v2.RouteLegStepTravelAdvisory.fromObject(object.travelAdvisory,long+1)}if(object.localizedValues!=null){if(typeof object.localizedValues!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.localizedValues: object expected");message.localizedValues=$root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.fromObject(object.localizedValues,long+1)}if(object.transitDetails!=null){if(typeof object.transitDetails!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.transitDetails: object expected");message.transitDetails=$root.google.maps.routing.v2.RouteLegStepTransitDetails.fromObject(object.transitDetails,long+1)}switch(object.travelMode){default:if(typeof object.travelMode==="number"){message.travelMode=object.travelMode;break}break;case"TRAVEL_MODE_UNSPECIFIED":case 0:message.travelMode=0;break;case"DRIVE":case 1:message.travelMode=1;break;case"BICYCLE":case 2:message.travelMode=2;break;case"WALK":case 3:message.travelMode=3;break;case"TWO_WHEELER":case 4:message.travelMode=4;break;case"TRANSIT":case 7:message.travelMode=7;break}return message};RouteLegStep.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.distanceMeters=0;object.staticDuration=null;object.polyline=null;object.startLocation=null;object.endLocation=null;object.navigationInstruction=null;object.travelAdvisory=null;object.localizedValues=null;object.transitDetails=null;object.travelMode=options.enums===String?"TRAVEL_MODE_UNSPECIFIED":0}if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))object.distanceMeters=message.distanceMeters;if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.protobuf.Duration.toObject(message.staticDuration,options);if(message.polyline!=null&&message.hasOwnProperty("polyline"))object.polyline=$root.google.maps.routing.v2.Polyline.toObject(message.polyline,options);if(message.startLocation!=null&&message.hasOwnProperty("startLocation"))object.startLocation=$root.google.maps.routing.v2.Location.toObject(message.startLocation,options);if(message.endLocation!=null&&message.hasOwnProperty("endLocation"))object.endLocation=$root.google.maps.routing.v2.Location.toObject(message.endLocation,options);if(message.navigationInstruction!=null&&message.hasOwnProperty("navigationInstruction"))object.navigationInstruction=$root.google.maps.routing.v2.NavigationInstruction.toObject(message.navigationInstruction,options);if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory"))object.travelAdvisory=$root.google.maps.routing.v2.RouteLegStepTravelAdvisory.toObject(message.travelAdvisory,options);if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues"))object.localizedValues=$root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.toObject(message.localizedValues,options);if(message.transitDetails!=null&&message.hasOwnProperty("transitDetails"))object.transitDetails=$root.google.maps.routing.v2.RouteLegStepTransitDetails.toObject(message.transitDetails,options);if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))object.travelMode=options.enums===String?$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]===undefined?message.travelMode:$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]:message.travelMode;return object};RouteLegStep.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLegStep.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegStep"};RouteLegStep.RouteLegStepLocalizedValues=function(){function RouteLegStepLocalizedValues(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLegStepLocalizedValues.prototype.distance=null;RouteLegStepLocalizedValues.prototype.staticDuration=null;RouteLegStepLocalizedValues.create=function create(properties){return new RouteLegStepLocalizedValues(properties)};RouteLegStepLocalizedValues.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.distance!=null&&Object.hasOwnProperty.call(message,"distance"))$root.google.type.LocalizedText.encode(message.distance,writer.uint32(10).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.type.LocalizedText.encode(message.staticDuration,writer.uint32(26).fork()).ldelim();return writer};RouteLegStepLocalizedValues.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLegStepLocalizedValues.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.distance=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.staticDuration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteLegStepLocalizedValues.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLegStepLocalizedValues.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.distance!=null&&message.hasOwnProperty("distance")){var error=$root.google.type.LocalizedText.verify(message.distance,long+1);if(error)return"distance."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.type.LocalizedText.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}return null};RouteLegStepLocalizedValues.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues;if(object.distance!=null){if(typeof object.distance!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.distance: object expected");message.distance=$root.google.type.LocalizedText.fromObject(object.distance,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.staticDuration: object expected");message.staticDuration=$root.google.type.LocalizedText.fromObject(object.staticDuration,long+1)}return message};RouteLegStepLocalizedValues.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.distance=null;object.staticDuration=null}if(message.distance!=null&&message.hasOwnProperty("distance"))object.distance=$root.google.type.LocalizedText.toObject(message.distance,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.type.LocalizedText.toObject(message.staticDuration,options);return object};RouteLegStepLocalizedValues.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLegStepLocalizedValues.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues"};return RouteLegStepLocalizedValues}();return RouteLegStep}();v2.RouteLegStepTransitDetails=function(){function RouteLegStepTransitDetails(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLegStepTransitDetails.prototype.stopDetails=null;RouteLegStepTransitDetails.prototype.localizedValues=null;RouteLegStepTransitDetails.prototype.headsign="";RouteLegStepTransitDetails.prototype.headway=null;RouteLegStepTransitDetails.prototype.transitLine=null;RouteLegStepTransitDetails.prototype.stopCount=0;RouteLegStepTransitDetails.prototype.tripShortText="";RouteLegStepTransitDetails.create=function create(properties){return new RouteLegStepTransitDetails(properties)};RouteLegStepTransitDetails.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.stopDetails!=null&&Object.hasOwnProperty.call(message,"stopDetails"))$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.encode(message.stopDetails,writer.uint32(10).fork()).ldelim();if(message.localizedValues!=null&&Object.hasOwnProperty.call(message,"localizedValues"))$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.encode(message.localizedValues,writer.uint32(18).fork()).ldelim();if(message.headsign!=null&&Object.hasOwnProperty.call(message,"headsign"))writer.uint32(26).string(message.headsign);if(message.headway!=null&&Object.hasOwnProperty.call(message,"headway"))$root.google.protobuf.Duration.encode(message.headway,writer.uint32(34).fork()).ldelim();if(message.transitLine!=null&&Object.hasOwnProperty.call(message,"transitLine"))$root.google.maps.routing.v2.TransitLine.encode(message.transitLine,writer.uint32(42).fork()).ldelim();if(message.stopCount!=null&&Object.hasOwnProperty.call(message,"stopCount"))writer.uint32(48).int32(message.stopCount);if(message.tripShortText!=null&&Object.hasOwnProperty.call(message,"tripShortText"))writer.uint32(58).string(message.tripShortText);return writer};RouteLegStepTransitDetails.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLegStepTransitDetails.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegStepTransitDetails;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.stopDetails=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.localizedValues=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.headsign=reader.string();break}case 4:{message.headway=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.transitLine=$root.google.maps.routing.v2.TransitLine.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.stopCount=reader.int32();break}case 7:{message.tripShortText=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};RouteLegStepTransitDetails.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLegStepTransitDetails.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.stopDetails!=null&&message.hasOwnProperty("stopDetails")){var error=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.verify(message.stopDetails,long+1);if(error)return"stopDetails."+error}if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues")){var error=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.verify(message.localizedValues,long+1);if(error)return"localizedValues."+error}if(message.headsign!=null&&message.hasOwnProperty("headsign"))if(!$util.isString(message.headsign))return"headsign: string expected";if(message.headway!=null&&message.hasOwnProperty("headway")){var error=$root.google.protobuf.Duration.verify(message.headway,long+1);if(error)return"headway."+error}if(message.transitLine!=null&&message.hasOwnProperty("transitLine")){var error=$root.google.maps.routing.v2.TransitLine.verify(message.transitLine,long+1);if(error)return"transitLine."+error}if(message.stopCount!=null&&message.hasOwnProperty("stopCount"))if(!$util.isInteger(message.stopCount))return"stopCount: integer expected";if(message.tripShortText!=null&&message.hasOwnProperty("tripShortText"))if(!$util.isString(message.tripShortText))return"tripShortText: string expected";return null};RouteLegStepTransitDetails.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegStepTransitDetails)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegStepTransitDetails;if(object.stopDetails!=null){if(typeof object.stopDetails!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.stopDetails: object expected");message.stopDetails=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.fromObject(object.stopDetails,long+1)}if(object.localizedValues!=null){if(typeof object.localizedValues!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.localizedValues: object expected");message.localizedValues=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.fromObject(object.localizedValues,long+1)}if(object.headsign!=null)message.headsign=String(object.headsign);if(object.headway!=null){if(typeof object.headway!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.headway: object expected");message.headway=$root.google.protobuf.Duration.fromObject(object.headway,long+1)}if(object.transitLine!=null){if(typeof object.transitLine!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.transitLine: object expected");message.transitLine=$root.google.maps.routing.v2.TransitLine.fromObject(object.transitLine,long+1)}if(object.stopCount!=null)message.stopCount=object.stopCount|0;if(object.tripShortText!=null)message.tripShortText=String(object.tripShortText);return message};RouteLegStepTransitDetails.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.stopDetails=null;object.localizedValues=null;object.headsign="";object.headway=null;object.transitLine=null;object.stopCount=0;object.tripShortText=""}if(message.stopDetails!=null&&message.hasOwnProperty("stopDetails"))object.stopDetails=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.toObject(message.stopDetails,options);if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues"))object.localizedValues=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.toObject(message.localizedValues,options);if(message.headsign!=null&&message.hasOwnProperty("headsign"))object.headsign=message.headsign;if(message.headway!=null&&message.hasOwnProperty("headway"))object.headway=$root.google.protobuf.Duration.toObject(message.headway,options);if(message.transitLine!=null&&message.hasOwnProperty("transitLine"))object.transitLine=$root.google.maps.routing.v2.TransitLine.toObject(message.transitLine,options);if(message.stopCount!=null&&message.hasOwnProperty("stopCount"))object.stopCount=message.stopCount;if(message.tripShortText!=null&&message.hasOwnProperty("tripShortText"))object.tripShortText=message.tripShortText;return object};RouteLegStepTransitDetails.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLegStepTransitDetails.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegStepTransitDetails"};RouteLegStepTransitDetails.TransitStopDetails=function(){function TransitStopDetails(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitStopDetails.prototype.arrivalStop=null;TransitStopDetails.prototype.arrivalTime=null;TransitStopDetails.prototype.departureStop=null;TransitStopDetails.prototype.departureTime=null;TransitStopDetails.create=function create(properties){return new TransitStopDetails(properties)};TransitStopDetails.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.arrivalStop!=null&&Object.hasOwnProperty.call(message,"arrivalStop"))$root.google.maps.routing.v2.TransitStop.encode(message.arrivalStop,writer.uint32(10).fork()).ldelim();if(message.arrivalTime!=null&&Object.hasOwnProperty.call(message,"arrivalTime"))$root.google.protobuf.Timestamp.encode(message.arrivalTime,writer.uint32(18).fork()).ldelim();if(message.departureStop!=null&&Object.hasOwnProperty.call(message,"departureStop"))$root.google.maps.routing.v2.TransitStop.encode(message.departureStop,writer.uint32(26).fork()).ldelim();if(message.departureTime!=null&&Object.hasOwnProperty.call(message,"departureTime"))$root.google.protobuf.Timestamp.encode(message.departureTime,writer.uint32(34).fork()).ldelim();return writer};TransitStopDetails.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitStopDetails.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.arrivalStop=$root.google.maps.routing.v2.TransitStop.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.arrivalTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.departureStop=$root.google.maps.routing.v2.TransitStop.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.departureTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TransitStopDetails.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitStopDetails.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.arrivalStop!=null&&message.hasOwnProperty("arrivalStop")){var error=$root.google.maps.routing.v2.TransitStop.verify(message.arrivalStop,long+1);if(error)return"arrivalStop."+error}if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime")){var error=$root.google.protobuf.Timestamp.verify(message.arrivalTime,long+1);if(error)return"arrivalTime."+error}if(message.departureStop!=null&&message.hasOwnProperty("departureStop")){var error=$root.google.maps.routing.v2.TransitStop.verify(message.departureStop,long+1);if(error)return"departureStop."+error}if(message.departureTime!=null&&message.hasOwnProperty("departureTime")){var error=$root.google.protobuf.Timestamp.verify(message.departureTime,long+1);if(error)return"departureTime."+error}return null};TransitStopDetails.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails;if(object.arrivalStop!=null){if(typeof object.arrivalStop!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.arrivalStop: object expected");message.arrivalStop=$root.google.maps.routing.v2.TransitStop.fromObject(object.arrivalStop,long+1)}if(object.arrivalTime!=null){if(typeof object.arrivalTime!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.arrivalTime: object expected");message.arrivalTime=$root.google.protobuf.Timestamp.fromObject(object.arrivalTime,long+1)}if(object.departureStop!=null){if(typeof object.departureStop!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.departureStop: object expected");message.departureStop=$root.google.maps.routing.v2.TransitStop.fromObject(object.departureStop,long+1)}if(object.departureTime!=null){if(typeof object.departureTime!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.departureTime: object expected");message.departureTime=$root.google.protobuf.Timestamp.fromObject(object.departureTime,long+1)}return message};TransitStopDetails.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.arrivalStop=null;object.arrivalTime=null;object.departureStop=null;object.departureTime=null}if(message.arrivalStop!=null&&message.hasOwnProperty("arrivalStop"))object.arrivalStop=$root.google.maps.routing.v2.TransitStop.toObject(message.arrivalStop,options);if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime"))object.arrivalTime=$root.google.protobuf.Timestamp.toObject(message.arrivalTime,options);if(message.departureStop!=null&&message.hasOwnProperty("departureStop"))object.departureStop=$root.google.maps.routing.v2.TransitStop.toObject(message.departureStop,options);if(message.departureTime!=null&&message.hasOwnProperty("departureTime"))object.departureTime=$root.google.protobuf.Timestamp.toObject(message.departureTime,options);return object};TransitStopDetails.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitStopDetails.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails"};return TransitStopDetails}();RouteLegStepTransitDetails.TransitDetailsLocalizedValues=function(){function TransitDetailsLocalizedValues(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitDetailsLocalizedValues.prototype.arrivalTime=null;TransitDetailsLocalizedValues.prototype.departureTime=null;TransitDetailsLocalizedValues.create=function create(properties){return new TransitDetailsLocalizedValues(properties)};TransitDetailsLocalizedValues.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.arrivalTime!=null&&Object.hasOwnProperty.call(message,"arrivalTime"))$root.google.maps.routing.v2.LocalizedTime.encode(message.arrivalTime,writer.uint32(10).fork()).ldelim();if(message.departureTime!=null&&Object.hasOwnProperty.call(message,"departureTime"))$root.google.maps.routing.v2.LocalizedTime.encode(message.departureTime,writer.uint32(18).fork()).ldelim();return writer};TransitDetailsLocalizedValues.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitDetailsLocalizedValues.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.arrivalTime=$root.google.maps.routing.v2.LocalizedTime.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.departureTime=$root.google.maps.routing.v2.LocalizedTime.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TransitDetailsLocalizedValues.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitDetailsLocalizedValues.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime")){var error=$root.google.maps.routing.v2.LocalizedTime.verify(message.arrivalTime,long+1);if(error)return"arrivalTime."+error}if(message.departureTime!=null&&message.hasOwnProperty("departureTime")){var error=$root.google.maps.routing.v2.LocalizedTime.verify(message.departureTime,long+1);if(error)return"departureTime."+error}return null};TransitDetailsLocalizedValues.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues;if(object.arrivalTime!=null){if(typeof object.arrivalTime!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.arrivalTime: object expected");message.arrivalTime=$root.google.maps.routing.v2.LocalizedTime.fromObject(object.arrivalTime,long+1)}if(object.departureTime!=null){if(typeof object.departureTime!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.departureTime: object expected");message.departureTime=$root.google.maps.routing.v2.LocalizedTime.fromObject(object.departureTime,long+1)}return message};TransitDetailsLocalizedValues.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.arrivalTime=null;object.departureTime=null}if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime"))object.arrivalTime=$root.google.maps.routing.v2.LocalizedTime.toObject(message.arrivalTime,options);if(message.departureTime!=null&&message.hasOwnProperty("departureTime"))object.departureTime=$root.google.maps.routing.v2.LocalizedTime.toObject(message.departureTime,options);return object};TransitDetailsLocalizedValues.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitDetailsLocalizedValues.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues"};return TransitDetailsLocalizedValues}();return RouteLegStepTransitDetails}();v2.RouteLabel=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ROUTE_LABEL_UNSPECIFIED"]=0;values[valuesById[1]="DEFAULT_ROUTE"]=1;values[valuesById[2]="DEFAULT_ROUTE_ALTERNATE"]=2;values[valuesById[3]="FUEL_EFFICIENT"]=3;values[valuesById[4]="SHORTER_DISTANCE"]=4;return values}();v2.RouteTravelMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TRAVEL_MODE_UNSPECIFIED"]=0;values[valuesById[1]="DRIVE"]=1;values[valuesById[2]="BICYCLE"]=2;values[valuesById[3]="WALK"]=3;values[valuesById[4]="TWO_WHEELER"]=4;values[valuesById[7]="TRANSIT"]=7;return values}();v2.SpeedReadingInterval=function(){function SpeedReadingInterval(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}SpeedReadingInterval.prototype.startPolylinePointIndex=null;SpeedReadingInterval.prototype.endPolylinePointIndex=null;SpeedReadingInterval.prototype.speed=null;var $oneOfFields;Object.defineProperty(SpeedReadingInterval.prototype,"_startPolylinePointIndex",{get:$util.oneOfGetter($oneOfFields=["startPolylinePointIndex"]),set:$util.oneOfSetter($oneOfFields)});Object.defineProperty(SpeedReadingInterval.prototype,"_endPolylinePointIndex",{get:$util.oneOfGetter($oneOfFields=["endPolylinePointIndex"]),set:$util.oneOfSetter($oneOfFields)});Object.defineProperty(SpeedReadingInterval.prototype,"speedType",{get:$util.oneOfGetter($oneOfFields=["speed"]),set:$util.oneOfSetter($oneOfFields)});SpeedReadingInterval.create=function create(properties){return new SpeedReadingInterval(properties)};SpeedReadingInterval.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.startPolylinePointIndex!=null&&Object.hasOwnProperty.call(message,"startPolylinePointIndex"))writer.uint32(8).int32(message.startPolylinePointIndex);if(message.endPolylinePointIndex!=null&&Object.hasOwnProperty.call(message,"endPolylinePointIndex"))writer.uint32(16).int32(message.endPolylinePointIndex);if(message.speed!=null&&Object.hasOwnProperty.call(message,"speed"))writer.uint32(24).int32(message.speed);return writer};SpeedReadingInterval.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};SpeedReadingInterval.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.SpeedReadingInterval;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.startPolylinePointIndex=reader.int32();break}case 2:{message.endPolylinePointIndex=reader.int32();break}case 3:{message.speed=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};SpeedReadingInterval.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SpeedReadingInterval.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.startPolylinePointIndex!=null&&message.hasOwnProperty("startPolylinePointIndex")){properties._startPolylinePointIndex=1;if(!$util.isInteger(message.startPolylinePointIndex))return"startPolylinePointIndex: integer expected"}if(message.endPolylinePointIndex!=null&&message.hasOwnProperty("endPolylinePointIndex")){properties._endPolylinePointIndex=1;if(!$util.isInteger(message.endPolylinePointIndex))return"endPolylinePointIndex: integer expected"}if(message.speed!=null&&message.hasOwnProperty("speed")){properties.speedType=1;switch(message.speed){default:return"speed: enum value expected";case 0:case 1:case 2:case 3:break}}return null};SpeedReadingInterval.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.SpeedReadingInterval)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.SpeedReadingInterval;if(object.startPolylinePointIndex!=null)message.startPolylinePointIndex=object.startPolylinePointIndex|0;if(object.endPolylinePointIndex!=null)message.endPolylinePointIndex=object.endPolylinePointIndex|0;switch(object.speed){default:if(typeof object.speed==="number"){message.speed=object.speed;break}break;case"SPEED_UNSPECIFIED":case 0:message.speed=0;break;case"NORMAL":case 1:message.speed=1;break;case"SLOW":case 2:message.speed=2;break;case"TRAFFIC_JAM":case 3:message.speed=3;break}return message};SpeedReadingInterval.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.startPolylinePointIndex!=null&&message.hasOwnProperty("startPolylinePointIndex")){object.startPolylinePointIndex=message.startPolylinePointIndex;if(options.oneofs)object._startPolylinePointIndex="startPolylinePointIndex"}if(message.endPolylinePointIndex!=null&&message.hasOwnProperty("endPolylinePointIndex")){object.endPolylinePointIndex=message.endPolylinePointIndex;if(options.oneofs)object._endPolylinePointIndex="endPolylinePointIndex"}if(message.speed!=null&&message.hasOwnProperty("speed")){object.speed=options.enums===String?$root.google.maps.routing.v2.SpeedReadingInterval.Speed[message.speed]===undefined?message.speed:$root.google.maps.routing.v2.SpeedReadingInterval.Speed[message.speed]:message.speed;if(options.oneofs)object.speedType="speed"}return object};SpeedReadingInterval.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SpeedReadingInterval.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.SpeedReadingInterval"};SpeedReadingInterval.Speed=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="SPEED_UNSPECIFIED"]=0;values[valuesById[1]="NORMAL"]=1;values[valuesById[2]="SLOW"]=2;values[valuesById[3]="TRAFFIC_JAM"]=3;return values}();return SpeedReadingInterval}();v2.TollInfo=function(){function TollInfo(properties){this.estimatedPrice=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TollInfo.prototype.estimatedPrice=$util.emptyArray;TollInfo.create=function create(properties){return new TollInfo(properties)};TollInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.estimatedPrice!=null&&message.estimatedPrice.length)for(var i=0;i<message.estimatedPrice.length;++i)$root.google.type.Money.encode(message.estimatedPrice[i],writer.uint32(10).fork()).ldelim();return writer};TollInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TollInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.TollInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.estimatedPrice&&message.estimatedPrice.length))message.estimatedPrice=[];message.estimatedPrice.push($root.google.type.Money.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};TollInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TollInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.estimatedPrice!=null&&message.hasOwnProperty("estimatedPrice")){if(!Array.isArray(message.estimatedPrice))return"estimatedPrice: array expected";for(var i=0;i<message.estimatedPrice.length;++i){var error=$root.google.type.Money.verify(message.estimatedPrice[i],long+1);if(error)return"estimatedPrice."+error}}return null};TollInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.TollInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.TollInfo;if(object.estimatedPrice){if(!Array.isArray(object.estimatedPrice))throw TypeError(".google.maps.routing.v2.TollInfo.estimatedPrice: array expected");message.estimatedPrice=[];for(var i=0;i<object.estimatedPrice.length;++i){if(typeof object.estimatedPrice[i]!=="object")throw TypeError(".google.maps.routing.v2.TollInfo.estimatedPrice: object expected");message.estimatedPrice[i]=$root.google.type.Money.fromObject(object.estimatedPrice[i],long+1)}}return message};TollInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.estimatedPrice=[];if(message.estimatedPrice&&message.estimatedPrice.length){object.estimatedPrice=[];for(var j=0;j<message.estimatedPrice.length;++j)object.estimatedPrice[j]=$root.google.type.Money.toObject(message.estimatedPrice[j],options)}return object};TollInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TollInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.TollInfo"};return TollInfo}();v2.TransitAgency=function(){function TransitAgency(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitAgency.prototype.name="";TransitAgency.prototype.phoneNumber="";TransitAgency.prototype.uri="";TransitAgency.create=function create(properties){return new TransitAgency(properties)};TransitAgency.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.phoneNumber!=null&&Object.hasOwnProperty.call(message,"phoneNumber"))writer.uint32(18).string(message.phoneNumber);if(message.uri!=null&&Object.hasOwnProperty.call(message,"uri"))writer.uint32(26).string(message.uri);return writer};TransitAgency.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitAgency.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.TransitAgency;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{message.phoneNumber=reader.string();break}case 3:{message.uri=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};TransitAgency.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitAgency.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.phoneNumber!=null&&message.hasOwnProperty("phoneNumber"))if(!$util.isString(message.phoneNumber))return"phoneNumber: string expected";if(message.uri!=null&&message.hasOwnProperty("uri"))if(!$util.isString(message.uri))return"uri: string expected";return null};TransitAgency.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.TransitAgency)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.TransitAgency;if(object.name!=null)message.name=String(object.name);if(object.phoneNumber!=null)message.phoneNumber=String(object.phoneNumber);if(object.uri!=null)message.uri=String(object.uri);return message};TransitAgency.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.phoneNumber="";object.uri=""}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.phoneNumber!=null&&message.hasOwnProperty("phoneNumber"))object.phoneNumber=message.phoneNumber;if(message.uri!=null&&message.hasOwnProperty("uri"))object.uri=message.uri;return object};TransitAgency.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitAgency.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.TransitAgency"};return TransitAgency}();v2.TransitLine=function(){function TransitLine(properties){this.agencies=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitLine.prototype.agencies=$util.emptyArray;TransitLine.prototype.name="";TransitLine.prototype.uri="";TransitLine.prototype.color="";TransitLine.prototype.iconUri="";TransitLine.prototype.nameShort="";TransitLine.prototype.textColor="";TransitLine.prototype.vehicle=null;TransitLine.create=function create(properties){return new TransitLine(properties)};TransitLine.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.agencies!=null&&message.agencies.length)for(var i=0;i<message.agencies.length;++i)$root.google.maps.routing.v2.TransitAgency.encode(message.agencies[i],writer.uint32(10).fork()).ldelim();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(18).string(message.name);if(message.uri!=null&&Object.hasOwnProperty.call(message,"uri"))writer.uint32(26).string(message.uri);if(message.color!=null&&Object.hasOwnProperty.call(message,"color"))writer.uint32(34).string(message.color);if(message.iconUri!=null&&Object.hasOwnProperty.call(message,"iconUri"))writer.uint32(42).string(message.iconUri);if(message.nameShort!=null&&Object.hasOwnProperty.call(message,"nameShort"))writer.uint32(50).string(message.nameShort);if(message.textColor!=null&&Object.hasOwnProperty.call(message,"textColor"))writer.uint32(58).string(message.textColor);if(message.vehicle!=null&&Object.hasOwnProperty.call(message,"vehicle"))$root.google.maps.routing.v2.TransitVehicle.encode(message.vehicle,writer.uint32(66).fork()).ldelim();return writer};TransitLine.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitLine.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.TransitLine;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.agencies&&message.agencies.length))message.agencies=[];message.agencies.push($root.google.maps.routing.v2.TransitAgency.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.name=reader.string();break}case 3:{message.uri=reader.string();break}case 4:{message.color=reader.string();break}case 5:{message.iconUri=reader.string();break}case 6:{message.nameShort=reader.string();break}case 7:{message.textColor=reader.string();break}case 8:{message.vehicle=$root.google.maps.routing.v2.TransitVehicle.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TransitLine.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitLine.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.agencies!=null&&message.hasOwnProperty("agencies")){if(!Array.isArray(message.agencies))return"agencies: array expected";for(var i=0;i<message.agencies.length;++i){var error=$root.google.maps.routing.v2.TransitAgency.verify(message.agencies[i],long+1);if(error)return"agencies."+error}}if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.uri!=null&&message.hasOwnProperty("uri"))if(!$util.isString(message.uri))return"uri: string expected";if(message.color!=null&&message.hasOwnProperty("color"))if(!$util.isString(message.color))return"color: string expected";if(message.iconUri!=null&&message.hasOwnProperty("iconUri"))if(!$util.isString(message.iconUri))return"iconUri: string expected";if(message.nameShort!=null&&message.hasOwnProperty("nameShort"))if(!$util.isString(message.nameShort))return"nameShort: string expected";if(message.textColor!=null&&message.hasOwnProperty("textColor"))if(!$util.isString(message.textColor))return"textColor: string expected";if(message.vehicle!=null&&message.hasOwnProperty("vehicle")){var error=$root.google.maps.routing.v2.TransitVehicle.verify(message.vehicle,long+1);if(error)return"vehicle."+error}return null};TransitLine.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.TransitLine)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.TransitLine;if(object.agencies){if(!Array.isArray(object.agencies))throw TypeError(".google.maps.routing.v2.TransitLine.agencies: array expected");message.agencies=[];for(var i=0;i<object.agencies.length;++i){if(typeof object.agencies[i]!=="object")throw TypeError(".google.maps.routing.v2.TransitLine.agencies: object expected");message.agencies[i]=$root.google.maps.routing.v2.TransitAgency.fromObject(object.agencies[i],long+1)}}if(object.name!=null)message.name=String(object.name);if(object.uri!=null)message.uri=String(object.uri);if(object.color!=null)message.color=String(object.color);if(object.iconUri!=null)message.iconUri=String(object.iconUri);if(object.nameShort!=null)message.nameShort=String(object.nameShort);if(object.textColor!=null)message.textColor=String(object.textColor);if(object.vehicle!=null){if(typeof object.vehicle!=="object")throw TypeError(".google.maps.routing.v2.TransitLine.vehicle: object expected");message.vehicle=$root.google.maps.routing.v2.TransitVehicle.fromObject(object.vehicle,long+1)}return message};TransitLine.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.agencies=[];if(options.defaults){object.name="";object.uri="";object.color="";object.iconUri="";object.nameShort="";object.textColor="";object.vehicle=null}if(message.agencies&&message.agencies.length){object.agencies=[];for(var j=0;j<message.agencies.length;++j)object.agencies[j]=$root.google.maps.routing.v2.TransitAgency.toObject(message.agencies[j],options)}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.uri!=null&&message.hasOwnProperty("uri"))object.uri=message.uri;if(message.color!=null&&message.hasOwnProperty("color"))object.color=message.color;if(message.iconUri!=null&&message.hasOwnProperty("iconUri"))object.iconUri=message.iconUri;if(message.nameShort!=null&&message.hasOwnProperty("nameShort"))object.nameShort=message.nameShort;if(message.textColor!=null&&message.hasOwnProperty("textColor"))object.textColor=message.textColor;if(message.vehicle!=null&&message.hasOwnProperty("vehicle"))object.vehicle=$root.google.maps.routing.v2.TransitVehicle.toObject(message.vehicle,options);return object};TransitLine.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitLine.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.TransitLine"};return TransitLine}();v2.TransitStop=function(){function TransitStop(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitStop.prototype.name="";TransitStop.prototype.location=null;TransitStop.create=function create(properties){return new TransitStop(properties)};TransitStop.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.location!=null&&Object.hasOwnProperty.call(message,"location"))$root.google.maps.routing.v2.Location.encode(message.location,writer.uint32(18).fork()).ldelim();return writer};TransitStop.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitStop.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.TransitStop;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{message.location=$root.google.maps.routing.v2.Location.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TransitStop.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitStop.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.location!=null&&message.hasOwnProperty("location")){var error=$root.google.maps.routing.v2.Location.verify(message.location,long+1);if(error)return"location."+error}return null};TransitStop.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.TransitStop)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.TransitStop;if(object.name!=null)message.name=String(object.name);if(object.location!=null){if(typeof object.location!=="object")throw TypeError(".google.maps.routing.v2.TransitStop.location: object expected");message.location=$root.google.maps.routing.v2.Location.fromObject(object.location,long+1)}return message};TransitStop.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.location=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.location!=null&&message.hasOwnProperty("location"))object.location=$root.google.maps.routing.v2.Location.toObject(message.location,options);return object};TransitStop.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitStop.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.TransitStop"};return TransitStop}();v2.TransitVehicle=function(){function TransitVehicle(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitVehicle.prototype.name=null;TransitVehicle.prototype.type=0;TransitVehicle.prototype.iconUri="";TransitVehicle.prototype.localIconUri="";TransitVehicle.create=function create(properties){return new TransitVehicle(properties)};TransitVehicle.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))$root.google.type.LocalizedText.encode(message.name,writer.uint32(10).fork()).ldelim();if(message.type!=null&&Object.hasOwnProperty.call(message,"type"))writer.uint32(16).int32(message.type);if(message.iconUri!=null&&Object.hasOwnProperty.call(message,"iconUri"))writer.uint32(26).string(message.iconUri);if(message.localIconUri!=null&&Object.hasOwnProperty.call(message,"localIconUri"))writer.uint32(34).string(message.localIconUri);return writer};TransitVehicle.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitVehicle.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.TransitVehicle;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.type=reader.int32();break}case 3:{message.iconUri=reader.string();break}case 4:{message.localIconUri=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};TransitVehicle.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitVehicle.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name")){var error=$root.google.type.LocalizedText.verify(message.name,long+1);if(error)return"name."+error}if(message.type!=null&&message.hasOwnProperty("type"))switch(message.type){default:return"type: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:break}if(message.iconUri!=null&&message.hasOwnProperty("iconUri"))if(!$util.isString(message.iconUri))return"iconUri: string expected";if(message.localIconUri!=null&&message.hasOwnProperty("localIconUri"))if(!$util.isString(message.localIconUri))return"localIconUri: string expected";return null};TransitVehicle.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.TransitVehicle)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.TransitVehicle;if(object.name!=null){if(typeof object.name!=="object")throw TypeError(".google.maps.routing.v2.TransitVehicle.name: object expected");message.name=$root.google.type.LocalizedText.fromObject(object.name,long+1)}switch(object.type){default:if(typeof object.type==="number"){message.type=object.type;break}break;case"TRANSIT_VEHICLE_TYPE_UNSPECIFIED":case 0:message.type=0;break;case"BUS":case 1:message.type=1;break;case"CABLE_CAR":case 2:message.type=2;break;case"COMMUTER_TRAIN":case 3:message.type=3;break;case"FERRY":case 4:message.type=4;break;case"FUNICULAR":case 5:message.type=5;break;case"GONDOLA_LIFT":case 6:message.type=6;break;case"HEAVY_RAIL":case 7:message.type=7;break;case"HIGH_SPEED_TRAIN":case 8:message.type=8;break;case"INTERCITY_BUS":case 9:message.type=9;break;case"LONG_DISTANCE_TRAIN":case 10:message.type=10;break;case"METRO_RAIL":case 11:message.type=11;break;case"MONORAIL":case 12:message.type=12;break;case"OTHER":case 13:message.type=13;break;case"RAIL":case 14:message.type=14;break;case"SHARE_TAXI":case 15:message.type=15;break;case"SUBWAY":case 16:message.type=16;break;case"TRAM":case 17:message.type=17;break;case"TROLLEYBUS":case 18:message.type=18;break}if(object.iconUri!=null)message.iconUri=String(object.iconUri);if(object.localIconUri!=null)message.localIconUri=String(object.localIconUri);return message};TransitVehicle.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name=null;object.type=options.enums===String?"TRANSIT_VEHICLE_TYPE_UNSPECIFIED":0;object.iconUri="";object.localIconUri=""}if(message.name!=null&&message.hasOwnProperty("name"))object.name=$root.google.type.LocalizedText.toObject(message.name,options);if(message.type!=null&&message.hasOwnProperty("type"))object.type=options.enums===String?$root.google.maps.routing.v2.TransitVehicle.TransitVehicleType[message.type]===undefined?message.type:$root.google.maps.routing.v2.TransitVehicle.TransitVehicleType[message.type]:message.type;if(message.iconUri!=null&&message.hasOwnProperty("iconUri"))object.iconUri=message.iconUri;if(message.localIconUri!=null&&message.hasOwnProperty("localIconUri"))object.localIconUri=message.localIconUri;return object};TransitVehicle.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitVehicle.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.TransitVehicle"};TransitVehicle.TransitVehicleType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TRANSIT_VEHICLE_TYPE_UNSPECIFIED"]=0;values[valuesById[1]="BUS"]=1;values[valuesById[2]="CABLE_CAR"]=2;values[valuesById[3]="COMMUTER_TRAIN"]=3;values[valuesById[4]="FERRY"]=4;values[valuesById[5]="FUNICULAR"]=5;values[valuesById[6]="GONDOLA_LIFT"]=6;values[valuesById[7]="HEAVY_RAIL"]=7;values[valuesById[8]="HIGH_SPEED_TRAIN"]=8;values[valuesById[9]="INTERCITY_BUS"]=9;values[valuesById[10]="LONG_DISTANCE_TRAIN"]=10;values[valuesById[11]="METRO_RAIL"]=11;values[valuesById[12]="MONORAIL"]=12;values[valuesById[13]="OTHER"]=13;values[valuesById[14]="RAIL"]=14;values[valuesById[15]="SHARE_TAXI"]=15;values[valuesById[16]="SUBWAY"]=16;values[valuesById[17]="TRAM"]=17;values[valuesById[18]="TROLLEYBUS"]=18;return values}();return TransitVehicle}();v2.RouteModifiers=function(){function RouteModifiers(properties){this.tollPasses=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteModifiers.prototype.avoidTolls=false;RouteModifiers.prototype.avoidHighways=false;RouteModifiers.prototype.avoidFerries=false;RouteModifiers.prototype.avoidIndoor=false;RouteModifiers.prototype.vehicleInfo=null;RouteModifiers.prototype.tollPasses=$util.emptyArray;RouteModifiers.create=function create(properties){return new RouteModifiers(properties)};RouteModifiers.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.avoidTolls!=null&&Object.hasOwnProperty.call(message,"avoidTolls"))writer.uint32(8).bool(message.avoidTolls);if(message.avoidHighways!=null&&Object.hasOwnProperty.call(message,"avoidHighways"))writer.uint32(16).bool(message.avoidHighways);if(message.avoidFerries!=null&&Object.hasOwnProperty.call(message,"avoidFerries"))writer.uint32(24).bool(message.avoidFerries);if(message.avoidIndoor!=null&&Object.hasOwnProperty.call(message,"avoidIndoor"))writer.uint32(32).bool(message.avoidIndoor);if(message.vehicleInfo!=null&&Object.hasOwnProperty.call(message,"vehicleInfo"))$root.google.maps.routing.v2.VehicleInfo.encode(message.vehicleInfo,writer.uint32(42).fork()).ldelim();if(message.tollPasses!=null&&message.tollPasses.length){writer.uint32(50).fork();for(var i=0;i<message.tollPasses.length;++i)writer.int32(message.tollPasses[i]);writer.ldelim()}return writer};RouteModifiers.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteModifiers.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteModifiers;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.avoidTolls=reader.bool();break}case 2:{message.avoidHighways=reader.bool();break}case 3:{message.avoidFerries=reader.bool();break}case 4:{message.avoidIndoor=reader.bool();break}case 5:{message.vehicleInfo=$root.google.maps.routing.v2.VehicleInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{if(!(message.tollPasses&&message.tollPasses.length))message.tollPasses=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.tollPasses.push(reader.int32())}else message.tollPasses.push(reader.int32());break}default:reader.skipType(tag&7,long);break}}return message};RouteModifiers.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteModifiers.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.avoidTolls!=null&&message.hasOwnProperty("avoidTolls"))if(typeof message.avoidTolls!=="boolean")return"avoidTolls: boolean expected";if(message.avoidHighways!=null&&message.hasOwnProperty("avoidHighways"))if(typeof message.avoidHighways!=="boolean")return"avoidHighways: boolean expected";if(message.avoidFerries!=null&&message.hasOwnProperty("avoidFerries"))if(typeof message.avoidFerries!=="boolean")return"avoidFerries: boolean expected";if(message.avoidIndoor!=null&&message.hasOwnProperty("avoidIndoor"))if(typeof message.avoidIndoor!=="boolean")return"avoidIndoor: boolean expected";if(message.vehicleInfo!=null&&message.hasOwnProperty("vehicleInfo")){var error=$root.google.maps.routing.v2.VehicleInfo.verify(message.vehicleInfo,long+1);if(error)return"vehicleInfo."+error}if(message.tollPasses!=null&&message.hasOwnProperty("tollPasses")){if(!Array.isArray(message.tollPasses))return"tollPasses: array expected";for(var i=0;i<message.tollPasses.length;++i)switch(message.tollPasses[i]){default:return"tollPasses: enum value[] expected";case 0:case 82:case 83:case 2:case 3:case 81:case 7:case 8:case 88:case 9:case 10:case 11:case 84:case 85:case 18:case 19:case 20:case 16:case 78:case 79:case 98:case 99:case 90:case 91:case 93:case 89:case 12:case 13:case 92:case 14:case 21:case 22:case 4:case 86:case 23:case 24:case 25:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 73:case 72:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 6:case 34:case 35:case 36:case 94:case 37:case 38:case 95:case 39:case 40:case 41:case 42:case 87:case 43:case 80:case 75:case 74:case 76:case 77:case 44:case 45:case 46:case 47:case 97:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 96:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 17:case 1:case 62:case 63:case 100:case 64:break}}return null};RouteModifiers.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteModifiers)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteModifiers;if(object.avoidTolls!=null)message.avoidTolls=Boolean(object.avoidTolls);if(object.avoidHighways!=null)message.avoidHighways=Boolean(object.avoidHighways);if(object.avoidFerries!=null)message.avoidFerries=Boolean(object.avoidFerries);if(object.avoidIndoor!=null)message.avoidIndoor=Boolean(object.avoidIndoor);if(object.vehicleInfo!=null){if(typeof object.vehicleInfo!=="object")throw TypeError(".google.maps.routing.v2.RouteModifiers.vehicleInfo: object expected");message.vehicleInfo=$root.google.maps.routing.v2.VehicleInfo.fromObject(object.vehicleInfo,long+1)}if(object.tollPasses){if(!Array.isArray(object.tollPasses))throw TypeError(".google.maps.routing.v2.RouteModifiers.tollPasses: array expected");message.tollPasses=[];for(var i=0;i<object.tollPasses.length;++i)switch(object.tollPasses[i]){default:if(typeof object.tollPasses[i]==="number"){message.tollPasses[i]=object.tollPasses[i];break}case"TOLL_PASS_UNSPECIFIED":case 0:message.tollPasses[i]=0;break;case"AU_ETOLL_TAG":case 82:message.tollPasses[i]=82;break;case"AU_EWAY_TAG":case 83:message.tollPasses[i]=83;break;case"AU_LINKT":case 2:message.tollPasses[i]=2;break;case"AR_TELEPASE":case 3:message.tollPasses[i]=3;break;case"BR_AUTO_EXPRESO":case 81:message.tollPasses[i]=81;break;case"BR_CONECTCAR":case 7:message.tollPasses[i]=7;break;case"BR_MOVE_MAIS":case 8:message.tollPasses[i]=8;break;case"BR_PASSA_RAPIDO":case 88:message.tollPasses[i]=88;break;case"BR_SEM_PARAR":case 9:message.tollPasses[i]=9;break;case"BR_TAGGY":case 10:message.tollPasses[i]=10;break;case"BR_VELOE":case 11:message.tollPasses[i]=11;break;case"CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD":case 84:message.tollPasses[i]=84;break;case"CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD":case 85:message.tollPasses[i]=85;break;case"CA_US_BLUE_WATER_EDGE_PASS":case 18:message.tollPasses[i]=18;break;case"CA_US_CONNEXION":case 19:message.tollPasses[i]=19;break;case"CA_US_NEXUS_CARD":case 20:message.tollPasses[i]=20;break;case"ID_E_TOLL":case 16:message.tollPasses[i]=16;break;case"IN_FASTAG":case 78:message.tollPasses[i]=78;break;case"IN_LOCAL_HP_PLATE_EXEMPT":case 79:message.tollPasses[i]=79;break;case"JP_ETC":case 98:message.tollPasses[i]=98;break;case"JP_ETC2":case 99:message.tollPasses[i]=99;break;case"MX_IAVE":case 90:message.tollPasses[i]=90;break;case"MX_PASE":case 91:message.tollPasses[i]=91;break;case"MX_QUICKPASS":case 93:message.tollPasses[i]=93;break;case"MX_SISTEMA_TELEPEAJE_CHIHUAHUA":case 89:message.tollPasses[i]=89;break;case"MX_TAG_IAVE":case 12:message.tollPasses[i]=12;break;case"MX_TAG_TELEVIA":case 13:message.tollPasses[i]=13;break;case"MX_TELEVIA":case 92:message.tollPasses[i]=92;break;case"MX_VIAPASS":case 14:message.tollPasses[i]=14;break;case"US_AL_FREEDOM_PASS":case 21:message.tollPasses[i]=21;break;case"US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS":case 22:message.tollPasses[i]=22;break;case"US_CA_FASTRAK":case 4:message.tollPasses[i]=4;break;case"US_CA_FASTRAK_CAV_STICKER":case 86:message.tollPasses[i]=86;break;case"US_CO_EXPRESSTOLL":case 23:message.tollPasses[i]=23;break;case"US_CO_GO_PASS":case 24:message.tollPasses[i]=24;break;case"US_DE_EZPASSDE":case 25:message.tollPasses[i]=25;break;case"US_FL_BOB_SIKES_TOLL_BRIDGE_PASS":case 65:message.tollPasses[i]=65;break;case"US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD":case 66:message.tollPasses[i]=66;break;case"US_FL_EPASS":case 67:message.tollPasses[i]=67;break;case"US_FL_GIBA_TOLL_PASS":case 68:message.tollPasses[i]=68;break;case"US_FL_LEEWAY":case 69:message.tollPasses[i]=69;break;case"US_FL_SUNPASS":case 70:message.tollPasses[i]=70;break;case"US_FL_SUNPASS_PRO":case 71:message.tollPasses[i]=71;break;case"US_IL_EZPASSIL":case 73:message.tollPasses[i]=73;break;case"US_IL_IPASS":case 72:message.tollPasses[i]=72;break;case"US_IN_EZPASSIN":case 26:message.tollPasses[i]=26;break;case"US_KS_BESTPASS_HORIZON":case 27:message.tollPasses[i]=27;break;case"US_KS_KTAG":case 28:message.tollPasses[i]=28;break;case"US_KS_NATIONALPASS":case 29:message.tollPasses[i]=29;break;case"US_KS_PREPASS_ELITEPASS":case 30:message.tollPasses[i]=30;break;case"US_KY_RIVERLINK":case 31:message.tollPasses[i]=31;break;case"US_LA_GEAUXPASS":case 32:message.tollPasses[i]=32;break;case"US_LA_TOLL_TAG":case 33:message.tollPasses[i]=33;break;case"US_MA_EZPASSMA":case 6:message.tollPasses[i]=6;break;case"US_MD_EZPASSMD":case 34:message.tollPasses[i]=34;break;case"US_ME_EZPASSME":case 35:message.tollPasses[i]=35;break;case"US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD":case 36:message.tollPasses[i]=36;break;case"US_MI_BCPASS":case 94:message.tollPasses[i]=94;break;case"US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG":case 37:message.tollPasses[i]=37;break;case"US_MI_IQ_PROX_CARD":case 38:message.tollPasses[i]=38;break;case"US_MI_IQ_TAG":case 95:message.tollPasses[i]=95;break;case"US_MI_MACKINAC_BRIDGE_MAC_PASS":case 39:message.tollPasses[i]=39;break;case"US_MI_NEXPRESS_TOLL":case 40:message.tollPasses[i]=40;break;case"US_MN_EZPASSMN":case 41:message.tollPasses[i]=41;break;case"US_NC_EZPASSNC":case 42:message.tollPasses[i]=42;break;case"US_NC_PEACH_PASS":case 87:message.tollPasses[i]=87;break;case"US_NC_QUICK_PASS":case 43:message.tollPasses[i]=43;break;case"US_NH_EZPASSNH":case 80:message.tollPasses[i]=80;break;case"US_NJ_DOWNBEACH_EXPRESS_PASS":case 75:message.tollPasses[i]=75;break;case"US_NJ_EZPASSNJ":case 74:message.tollPasses[i]=74;break;case"US_NY_EXPRESSPASS":case 76:message.tollPasses[i]=76;break;case"US_NY_EZPASSNY":case 77:message.tollPasses[i]=77;break;case"US_OH_EZPASSOH":case 44:message.tollPasses[i]=44;break;case"US_PA_EZPASSPA":case 45:message.tollPasses[i]=45;break;case"US_RI_EZPASSRI":case 46:message.tollPasses[i]=46;break;case"US_SC_PALPASS":case 47:message.tollPasses[i]=47;break;case"US_TX_AVI_TAG":case 97:message.tollPasses[i]=97;break;case"US_TX_BANCPASS":case 48:message.tollPasses[i]=48;break;case"US_TX_DEL_RIO_PASS":case 49:message.tollPasses[i]=49;break;case"US_TX_EFAST_PASS":case 50:message.tollPasses[i]=50;break;case"US_TX_EAGLE_PASS_EXPRESS_CARD":case 51:message.tollPasses[i]=51;break;case"US_TX_EPTOLL":case 52:message.tollPasses[i]=52;break;case"US_TX_EZ_CROSS":case 53:message.tollPasses[i]=53;break;case"US_TX_EZTAG":case 54:message.tollPasses[i]=54;break;case"US_TX_FUEGO_TAG":case 96:message.tollPasses[i]=96;break;case"US_TX_LAREDO_TRADE_TAG":case 55:message.tollPasses[i]=55;break;case"US_TX_PLUSPASS":case 56:message.tollPasses[i]=56;break;case"US_TX_TOLLTAG":case 57:message.tollPasses[i]=57;break;case"US_TX_TXTAG":case 58:message.tollPasses[i]=58;break;case"US_TX_XPRESS_CARD":case 59:message.tollPasses[i]=59;break;case"US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD":case 60:message.tollPasses[i]=60;break;case"US_VA_EZPASSVA":case 61:message.tollPasses[i]=61;break;case"US_WA_BREEZEBY":case 17:message.tollPasses[i]=17;break;case"US_WA_GOOD_TO_GO":case 1:message.tollPasses[i]=1;break;case"US_WV_EZPASSWV":case 62:message.tollPasses[i]=62;break;case"US_WV_MEMORIAL_BRIDGE_TICKETS":case 63:message.tollPasses[i]=63;break;case"US_WV_MOV_PASS":case 100:message.tollPasses[i]=100;break;case"US_WV_NEWELL_TOLL_BRIDGE_TICKET":case 64:message.tollPasses[i]=64;break}}return message};RouteModifiers.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.tollPasses=[];if(options.defaults){object.avoidTolls=false;object.avoidHighways=false;object.avoidFerries=false;object.avoidIndoor=false;object.vehicleInfo=null}if(message.avoidTolls!=null&&message.hasOwnProperty("avoidTolls"))object.avoidTolls=message.avoidTolls;if(message.avoidHighways!=null&&message.hasOwnProperty("avoidHighways"))object.avoidHighways=message.avoidHighways;if(message.avoidFerries!=null&&message.hasOwnProperty("avoidFerries"))object.avoidFerries=message.avoidFerries;if(message.avoidIndoor!=null&&message.hasOwnProperty("avoidIndoor"))object.avoidIndoor=message.avoidIndoor;if(message.vehicleInfo!=null&&message.hasOwnProperty("vehicleInfo"))object.vehicleInfo=$root.google.maps.routing.v2.VehicleInfo.toObject(message.vehicleInfo,options);if(message.tollPasses&&message.tollPasses.length){object.tollPasses=[];for(var j=0;j<message.tollPasses.length;++j)object.tollPasses[j]=options.enums===String?$root.google.maps.routing.v2.TollPass[message.tollPasses[j]]===undefined?message.tollPasses[j]:$root.google.maps.routing.v2.TollPass[message.tollPasses[j]]:message.tollPasses[j]}return object};RouteModifiers.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteModifiers.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteModifiers"};return RouteModifiers}();v2.TollPass=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TOLL_PASS_UNSPECIFIED"]=0;values[valuesById[82]="AU_ETOLL_TAG"]=82;values[valuesById[83]="AU_EWAY_TAG"]=83;values[valuesById[2]="AU_LINKT"]=2;values[valuesById[3]="AR_TELEPASE"]=3;values[valuesById[81]="BR_AUTO_EXPRESO"]=81;values[valuesById[7]="BR_CONECTCAR"]=7;values[valuesById[8]="BR_MOVE_MAIS"]=8;values[valuesById[88]="BR_PASSA_RAPIDO"]=88;values[valuesById[9]="BR_SEM_PARAR"]=9;values[valuesById[10]="BR_TAGGY"]=10;values[valuesById[11]="BR_VELOE"]=11;values[valuesById[84]="CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD"]=84;values[valuesById[85]="CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD"]=85;values[valuesById[18]="CA_US_BLUE_WATER_EDGE_PASS"]=18;values[valuesById[19]="CA_US_CONNEXION"]=19;values[valuesById[20]="CA_US_NEXUS_CARD"]=20;values[valuesById[16]="ID_E_TOLL"]=16;values[valuesById[78]="IN_FASTAG"]=78;values[valuesById[79]="IN_LOCAL_HP_PLATE_EXEMPT"]=79;values[valuesById[98]="JP_ETC"]=98;values[valuesById[99]="JP_ETC2"]=99;values[valuesById[90]="MX_IAVE"]=90;values[valuesById[91]="MX_PASE"]=91;values[valuesById[93]="MX_QUICKPASS"]=93;values[valuesById[89]="MX_SISTEMA_TELEPEAJE_CHIHUAHUA"]=89;values[valuesById[12]="MX_TAG_IAVE"]=12;values[valuesById[13]="MX_TAG_TELEVIA"]=13;values[valuesById[92]="MX_TELEVIA"]=92;values[valuesById[14]="MX_VIAPASS"]=14;values[valuesById[21]="US_AL_FREEDOM_PASS"]=21;values[valuesById[22]="US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS"]=22;values[valuesById[4]="US_CA_FASTRAK"]=4;values[valuesById[86]="US_CA_FASTRAK_CAV_STICKER"]=86;values[valuesById[23]="US_CO_EXPRESSTOLL"]=23;values[valuesById[24]="US_CO_GO_PASS"]=24;values[valuesById[25]="US_DE_EZPASSDE"]=25;values[valuesById[65]="US_FL_BOB_SIKES_TOLL_BRIDGE_PASS"]=65;values[valuesById[66]="US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD"]=66;values[valuesById[67]="US_FL_EPASS"]=67;values[valuesById[68]="US_FL_GIBA_TOLL_PASS"]=68;values[valuesById[69]="US_FL_LEEWAY"]=69;values[valuesById[70]="US_FL_SUNPASS"]=70;values[valuesById[71]="US_FL_SUNPASS_PRO"]=71;values[valuesById[73]="US_IL_EZPASSIL"]=73;values[valuesById[72]="US_IL_IPASS"]=72;values[valuesById[26]="US_IN_EZPASSIN"]=26;values[valuesById[27]="US_KS_BESTPASS_HORIZON"]=27;values[valuesById[28]="US_KS_KTAG"]=28;values[valuesById[29]="US_KS_NATIONALPASS"]=29;values[valuesById[30]="US_KS_PREPASS_ELITEPASS"]=30;values[valuesById[31]="US_KY_RIVERLINK"]=31;values[valuesById[32]="US_LA_GEAUXPASS"]=32;values[valuesById[33]="US_LA_TOLL_TAG"]=33;values[valuesById[6]="US_MA_EZPASSMA"]=6;values[valuesById[34]="US_MD_EZPASSMD"]=34;values[valuesById[35]="US_ME_EZPASSME"]=35;values[valuesById[36]="US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD"]=36;values[valuesById[94]="US_MI_BCPASS"]=94;values[valuesById[37]="US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG"]=37;values[valuesById[38]="US_MI_IQ_PROX_CARD"]=38;values[valuesById[95]="US_MI_IQ_TAG"]=95;values[valuesById[39]="US_MI_MACKINAC_BRIDGE_MAC_PASS"]=39;values[valuesById[40]="US_MI_NEXPRESS_TOLL"]=40;values[valuesById[41]="US_MN_EZPASSMN"]=41;values[valuesById[42]="US_NC_EZPASSNC"]=42;values[valuesById[87]="US_NC_PEACH_PASS"]=87;values[valuesById[43]="US_NC_QUICK_PASS"]=43;values[valuesById[80]="US_NH_EZPASSNH"]=80;values[valuesById[75]="US_NJ_DOWNBEACH_EXPRESS_PASS"]=75;values[valuesById[74]="US_NJ_EZPASSNJ"]=74;values[valuesById[76]="US_NY_EXPRESSPASS"]=76;values[valuesById[77]="US_NY_EZPASSNY"]=77;values[valuesById[44]="US_OH_EZPASSOH"]=44;values[valuesById[45]="US_PA_EZPASSPA"]=45;values[valuesById[46]="US_RI_EZPASSRI"]=46;values[valuesById[47]="US_SC_PALPASS"]=47;values[valuesById[97]="US_TX_AVI_TAG"]=97;values[valuesById[48]="US_TX_BANCPASS"]=48;values[valuesById[49]="US_TX_DEL_RIO_PASS"]=49;values[valuesById[50]="US_TX_EFAST_PASS"]=50;values[valuesById[51]="US_TX_EAGLE_PASS_EXPRESS_CARD"]=51;values[valuesById[52]="US_TX_EPTOLL"]=52;values[valuesById[53]="US_TX_EZ_CROSS"]=53;values[valuesById[54]="US_TX_EZTAG"]=54;values[valuesById[96]="US_TX_FUEGO_TAG"]=96;values[valuesById[55]="US_TX_LAREDO_TRADE_TAG"]=55;values[valuesById[56]="US_TX_PLUSPASS"]=56;values[valuesById[57]="US_TX_TOLLTAG"]=57;values[valuesById[58]="US_TX_TXTAG"]=58;values[valuesById[59]="US_TX_XPRESS_CARD"]=59;values[valuesById[60]="US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD"]=60;values[valuesById[61]="US_VA_EZPASSVA"]=61;values[valuesById[17]="US_WA_BREEZEBY"]=17;values[valuesById[1]="US_WA_GOOD_TO_GO"]=1;values[valuesById[62]="US_WV_EZPASSWV"]=62;values[valuesById[63]="US_WV_MEMORIAL_BRIDGE_TICKETS"]=63;values[valuesById[100]="US_WV_MOV_PASS"]=100;values[valuesById[64]="US_WV_NEWELL_TOLL_BRIDGE_TICKET"]=64;return values}();v2.VehicleInfo=function(){function VehicleInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}VehicleInfo.prototype.emissionType=0;VehicleInfo.create=function create(properties){return new VehicleInfo(properties)};VehicleInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.emissionType!=null&&Object.hasOwnProperty.call(message,"emissionType"))writer.uint32(16).int32(message.emissionType);return writer};VehicleInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};VehicleInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.VehicleInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 2:{message.emissionType=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};VehicleInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};VehicleInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.emissionType!=null&&message.hasOwnProperty("emissionType"))switch(message.emissionType){default:return"emissionType: enum value expected";case 0:case 1:case 2:case 3:case 4:break}return null};VehicleInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.VehicleInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.VehicleInfo;switch(object.emissionType){default:if(typeof object.emissionType==="number"){message.emissionType=object.emissionType;break}break;case"VEHICLE_EMISSION_TYPE_UNSPECIFIED":case 0:message.emissionType=0;break;case"GASOLINE":case 1:message.emissionType=1;break;case"ELECTRIC":case 2:message.emissionType=2;break;case"HYBRID":case 3:message.emissionType=3;break;case"DIESEL":case 4:message.emissionType=4;break}return message};VehicleInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.emissionType=options.enums===String?"VEHICLE_EMISSION_TYPE_UNSPECIFIED":0;if(message.emissionType!=null&&message.hasOwnProperty("emissionType"))object.emissionType=options.enums===String?$root.google.maps.routing.v2.VehicleEmissionType[message.emissionType]===undefined?message.emissionType:$root.google.maps.routing.v2.VehicleEmissionType[message.emissionType]:message.emissionType;return object};VehicleInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};VehicleInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.VehicleInfo"};return VehicleInfo}();v2.VehicleEmissionType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="VEHICLE_EMISSION_TYPE_UNSPECIFIED"]=0;values[valuesById[1]="GASOLINE"]=1;values[valuesById[2]="ELECTRIC"]=2;values[valuesById[3]="HYBRID"]=3;values[valuesById[4]="DIESEL"]=4;return values}();v2.Routes=function(){function Routes(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}(Routes.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=Routes;Routes.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)};Object.defineProperty(Routes.prototype.computeRoutes=function computeRoutes(request,callback){return this.rpcCall(computeRoutes,$root.google.maps.routing.v2.ComputeRoutesRequest,$root.google.maps.routing.v2.ComputeRoutesResponse,request,callback)},"name",{value:"ComputeRoutes"});Object.defineProperty(Routes.prototype.computeRouteMatrix=function computeRouteMatrix(request,callback){return this.rpcCall(computeRouteMatrix,$root.google.maps.routing.v2.ComputeRouteMatrixRequest,$root.google.maps.routing.v2.RouteMatrixElement,request,callback)},"name",{value:"ComputeRouteMatrix"});return Routes}();v2.ComputeRoutesRequest=function(){function ComputeRoutesRequest(properties){this.intermediates=[];this.requestedReferenceRoutes=[];this.extraComputations=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ComputeRoutesRequest.prototype.origin=null;ComputeRoutesRequest.prototype.destination=null;ComputeRoutesRequest.prototype.intermediates=$util.emptyArray;ComputeRoutesRequest.prototype.travelMode=0;ComputeRoutesRequest.prototype.routingPreference=0;ComputeRoutesRequest.prototype.polylineQuality=0;ComputeRoutesRequest.prototype.polylineEncoding=0;ComputeRoutesRequest.prototype.departureTime=null;ComputeRoutesRequest.prototype.arrivalTime=null;ComputeRoutesRequest.prototype.computeAlternativeRoutes=false;ComputeRoutesRequest.prototype.routeModifiers=null;ComputeRoutesRequest.prototype.languageCode="";ComputeRoutesRequest.prototype.regionCode="";ComputeRoutesRequest.prototype.units=0;ComputeRoutesRequest.prototype.optimizeWaypointOrder=false;ComputeRoutesRequest.prototype.requestedReferenceRoutes=$util.emptyArray;ComputeRoutesRequest.prototype.extraComputations=$util.emptyArray;ComputeRoutesRequest.prototype.trafficModel=0;ComputeRoutesRequest.prototype.transitPreferences=null;ComputeRoutesRequest.create=function create(properties){return new ComputeRoutesRequest(properties)};ComputeRoutesRequest.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.origin!=null&&Object.hasOwnProperty.call(message,"origin"))$root.google.maps.routing.v2.Waypoint.encode(message.origin,writer.uint32(10).fork()).ldelim();if(message.destination!=null&&Object.hasOwnProperty.call(message,"destination"))$root.google.maps.routing.v2.Waypoint.encode(message.destination,writer.uint32(18).fork()).ldelim();if(message.intermediates!=null&&message.intermediates.length)for(var i=0;i<message.intermediates.length;++i)$root.google.maps.routing.v2.Waypoint.encode(message.intermediates[i],writer.uint32(26).fork()).ldelim();if(message.travelMode!=null&&Object.hasOwnProperty.call(message,"travelMode"))writer.uint32(32).int32(message.travelMode);if(message.routingPreference!=null&&Object.hasOwnProperty.call(message,"routingPreference"))writer.uint32(40).int32(message.routingPreference);if(message.polylineQuality!=null&&Object.hasOwnProperty.call(message,"polylineQuality"))writer.uint32(48).int32(message.polylineQuality);if(message.departureTime!=null&&Object.hasOwnProperty.call(message,"departureTime"))$root.google.protobuf.Timestamp.encode(message.departureTime,writer.uint32(58).fork()).ldelim();if(message.computeAlternativeRoutes!=null&&Object.hasOwnProperty.call(message,"computeAlternativeRoutes"))writer.uint32(64).bool(message.computeAlternativeRoutes);if(message.routeModifiers!=null&&Object.hasOwnProperty.call(message,"routeModifiers"))$root.google.maps.routing.v2.RouteModifiers.encode(message.routeModifiers,writer.uint32(74).fork()).ldelim();if(message.languageCode!=null&&Object.hasOwnProperty.call(message,"languageCode"))writer.uint32(82).string(message.languageCode);if(message.units!=null&&Object.hasOwnProperty.call(message,"units"))writer.uint32(88).int32(message.units);if(message.polylineEncoding!=null&&Object.hasOwnProperty.call(message,"polylineEncoding"))writer.uint32(96).int32(message.polylineEncoding);if(message.optimizeWaypointOrder!=null&&Object.hasOwnProperty.call(message,"optimizeWaypointOrder"))writer.uint32(104).bool(message.optimizeWaypointOrder);if(message.requestedReferenceRoutes!=null&&message.requestedReferenceRoutes.length){writer.uint32(114).fork();for(var i=0;i<message.requestedReferenceRoutes.length;++i)writer.int32(message.requestedReferenceRoutes[i]);writer.ldelim()}if(message.extraComputations!=null&&message.extraComputations.length){writer.uint32(122).fork();for(var i=0;i<message.extraComputations.length;++i)writer.int32(message.extraComputations[i]);writer.ldelim()}if(message.regionCode!=null&&Object.hasOwnProperty.call(message,"regionCode"))writer.uint32(130).string(message.regionCode);if(message.trafficModel!=null&&Object.hasOwnProperty.call(message,"trafficModel"))writer.uint32(144).int32(message.trafficModel);if(message.arrivalTime!=null&&Object.hasOwnProperty.call(message,"arrivalTime"))$root.google.protobuf.Timestamp.encode(message.arrivalTime,writer.uint32(154).fork()).ldelim();if(message.transitPreferences!=null&&Object.hasOwnProperty.call(message,"transitPreferences"))$root.google.maps.routing.v2.TransitPreferences.encode(message.transitPreferences,writer.uint32(162).fork()).ldelim();return writer};ComputeRoutesRequest.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ComputeRoutesRequest.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.ComputeRoutesRequest;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.origin=$root.google.maps.routing.v2.Waypoint.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.destination=$root.google.maps.routing.v2.Waypoint.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{if(!(message.intermediates&&message.intermediates.length))message.intermediates=[];message.intermediates.push($root.google.maps.routing.v2.Waypoint.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.travelMode=reader.int32();break}case 5:{message.routingPreference=reader.int32();break}case 6:{message.polylineQuality=reader.int32();break}case 12:{message.polylineEncoding=reader.int32();break}case 7:{message.departureTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 19:{message.arrivalTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.computeAlternativeRoutes=reader.bool();break}case 9:{message.routeModifiers=$root.google.maps.routing.v2.RouteModifiers.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.languageCode=reader.string();break}case 16:{message.regionCode=reader.string();break}case 11:{message.units=reader.int32();break}case 13:{message.optimizeWaypointOrder=reader.bool();break}case 14:{if(!(message.requestedReferenceRoutes&&message.requestedReferenceRoutes.length))message.requestedReferenceRoutes=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.requestedReferenceRoutes.push(reader.int32())}else message.requestedReferenceRoutes.push(reader.int32());break}case 15:{if(!(message.extraComputations&&message.extraComputations.length))message.extraComputations=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.extraComputations.push(reader.int32())}else message.extraComputations.push(reader.int32());break}case 18:{message.trafficModel=reader.int32();break}case 20:{message.transitPreferences=$root.google.maps.routing.v2.TransitPreferences.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ComputeRoutesRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ComputeRoutesRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.origin!=null&&message.hasOwnProperty("origin")){var error=$root.google.maps.routing.v2.Waypoint.verify(message.origin,long+1);if(error)return"origin."+error}if(message.destination!=null&&message.hasOwnProperty("destination")){var error=$root.google.maps.routing.v2.Waypoint.verify(message.destination,long+1);if(error)return"destination."+error}if(message.intermediates!=null&&message.hasOwnProperty("intermediates")){if(!Array.isArray(message.intermediates))return"intermediates: array expected";for(var i=0;i<message.intermediates.length;++i){var error=$root.google.maps.routing.v2.Waypoint.verify(message.intermediates[i],long+1);if(error)return"intermediates."+error}}if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))switch(message.travelMode){default:return"travelMode: enum value expected";case 0:case 1:case 2:case 3:case 4:case 7:break}if(message.routingPreference!=null&&message.hasOwnProperty("routingPreference"))switch(message.routingPreference){default:return"routingPreference: enum value expected";case 0:case 1:case 2:case 3:break}if(message.polylineQuality!=null&&message.hasOwnProperty("polylineQuality"))switch(message.polylineQuality){default:return"polylineQuality: enum value expected";case 0:case 1:case 2:break}if(message.polylineEncoding!=null&&message.hasOwnProperty("polylineEncoding"))switch(message.polylineEncoding){default:return"polylineEncoding: enum value expected";case 0:case 1:case 2:break}if(message.departureTime!=null&&message.hasOwnProperty("departureTime")){var error=$root.google.protobuf.Timestamp.verify(message.departureTime,long+1);if(error)return"departureTime."+error}if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime")){var error=$root.google.protobuf.Timestamp.verify(message.arrivalTime,long+1);if(error)return"arrivalTime."+error}if(message.computeAlternativeRoutes!=null&&message.hasOwnProperty("computeAlternativeRoutes"))if(typeof message.computeAlternativeRoutes!=="boolean")return"computeAlternativeRoutes: boolean expected";if(message.routeModifiers!=null&&message.hasOwnProperty("routeModifiers")){var error=$root.google.maps.routing.v2.RouteModifiers.verify(message.routeModifiers,long+1);if(error)return"routeModifiers."+error}if(message.languageCode!=null&&message.hasOwnProperty("languageCode"))if(!$util.isString(message.languageCode))return"languageCode: string expected";if(message.regionCode!=null&&message.hasOwnProperty("regionCode"))if(!$util.isString(message.regionCode))return"regionCode: string expected";if(message.units!=null&&message.hasOwnProperty("units"))switch(message.units){default:return"units: enum value expected";case 0:case 1:case 2:break}if(message.optimizeWaypointOrder!=null&&message.hasOwnProperty("optimizeWaypointOrder"))if(typeof message.optimizeWaypointOrder!=="boolean")return"optimizeWaypointOrder: boolean expected";if(message.requestedReferenceRoutes!=null&&message.hasOwnProperty("requestedReferenceRoutes")){if(!Array.isArray(message.requestedReferenceRoutes))return"requestedReferenceRoutes: array expected";for(var i=0;i<message.requestedReferenceRoutes.length;++i)switch(message.requestedReferenceRoutes[i]){default:return"requestedReferenceRoutes: enum value[] expected";case 0:case 1:case 2:break}}if(message.extraComputations!=null&&message.hasOwnProperty("extraComputations")){if(!Array.isArray(message.extraComputations))return"extraComputations: array expected";for(var i=0;i<message.extraComputations.length;++i)switch(message.extraComputations[i]){default:return"extraComputations: enum value[] expected";case 0:case 1:case 2:case 3:case 4:case 7:case 8:break}}if(message.trafficModel!=null&&message.hasOwnProperty("trafficModel"))switch(message.trafficModel){default:return"trafficModel: enum value expected";case 0:case 1:case 2:case 3:break}if(message.transitPreferences!=null&&message.hasOwnProperty("transitPreferences")){var error=$root.google.maps.routing.v2.TransitPreferences.verify(message.transitPreferences,long+1);if(error)return"transitPreferences."+error}return null};ComputeRoutesRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.ComputeRoutesRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.ComputeRoutesRequest;if(object.origin!=null){if(typeof object.origin!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.origin: object expected");message.origin=$root.google.maps.routing.v2.Waypoint.fromObject(object.origin,long+1)}if(object.destination!=null){if(typeof object.destination!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.destination: object expected");message.destination=$root.google.maps.routing.v2.Waypoint.fromObject(object.destination,long+1)}if(object.intermediates){if(!Array.isArray(object.intermediates))throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.intermediates: array expected");message.intermediates=[];for(var i=0;i<object.intermediates.length;++i){if(typeof object.intermediates[i]!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.intermediates: object expected");message.intermediates[i]=$root.google.maps.routing.v2.Waypoint.fromObject(object.intermediates[i],long+1)}}switch(object.travelMode){default:if(typeof object.travelMode==="number"){message.travelMode=object.travelMode;break}break;case"TRAVEL_MODE_UNSPECIFIED":case 0:message.travelMode=0;break;case"DRIVE":case 1:message.travelMode=1;break;case"BICYCLE":case 2:message.travelMode=2;break;case"WALK":case 3:message.travelMode=3;break;case"TWO_WHEELER":case 4:message.travelMode=4;break;case"TRANSIT":case 7:message.travelMode=7;break}switch(object.routingPreference){default:if(typeof object.routingPreference==="number"){message.routingPreference=object.routingPreference;break}break;case"ROUTING_PREFERENCE_UNSPECIFIED":case 0:message.routingPreference=0;break;case"TRAFFIC_UNAWARE":case 1:message.routingPreference=1;break;case"TRAFFIC_AWARE":case 2:message.routingPreference=2;break;case"TRAFFIC_AWARE_OPTIMAL":case 3:message.routingPreference=3;break}switch(object.polylineQuality){default:if(typeof object.polylineQuality==="number"){message.polylineQuality=object.polylineQuality;break}break;case"POLYLINE_QUALITY_UNSPECIFIED":case 0:message.polylineQuality=0;break;case"HIGH_QUALITY":case 1:message.polylineQuality=1;break;case"OVERVIEW":case 2:message.polylineQuality=2;break}switch(object.polylineEncoding){default:if(typeof object.polylineEncoding==="number"){message.polylineEncoding=object.polylineEncoding;break}break;case"POLYLINE_ENCODING_UNSPECIFIED":case 0:message.polylineEncoding=0;break;case"ENCODED_POLYLINE":case 1:message.polylineEncoding=1;break;case"GEO_JSON_LINESTRING":case 2:message.polylineEncoding=2;break}if(object.departureTime!=null){if(typeof object.departureTime!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.departureTime: object expected");message.departureTime=$root.google.protobuf.Timestamp.fromObject(object.departureTime,long+1)}if(object.arrivalTime!=null){if(typeof object.arrivalTime!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.arrivalTime: object expected");message.arrivalTime=$root.google.protobuf.Timestamp.fromObject(object.arrivalTime,long+1)}if(object.computeAlternativeRoutes!=null)message.computeAlternativeRoutes=Boolean(object.computeAlternativeRoutes);if(object.routeModifiers!=null){if(typeof object.routeModifiers!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.routeModifiers: object expected");message.routeModifiers=$root.google.maps.routing.v2.RouteModifiers.fromObject(object.routeModifiers,long+1)}if(object.languageCode!=null)message.languageCode=String(object.languageCode);if(object.regionCode!=null)message.regionCode=String(object.regionCode);switch(object.units){default:if(typeof object.units==="number"){message.units=object.units;break}break;case"UNITS_UNSPECIFIED":case 0:message.units=0;break;case"METRIC":case 1:message.units=1;break;case"IMPERIAL":case 2:message.units=2;break}if(object.optimizeWaypointOrder!=null)message.optimizeWaypointOrder=Boolean(object.optimizeWaypointOrder);if(object.requestedReferenceRoutes){if(!Array.isArray(object.requestedReferenceRoutes))throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.requestedReferenceRoutes: array expected");message.requestedReferenceRoutes=[];for(var i=0;i<object.requestedReferenceRoutes.length;++i)switch(object.requestedReferenceRoutes[i]){default:if(typeof object.requestedReferenceRoutes[i]==="number"){message.requestedReferenceRoutes[i]=object.requestedReferenceRoutes[i];break}case"REFERENCE_ROUTE_UNSPECIFIED":case 0:message.requestedReferenceRoutes[i]=0;break;case"FUEL_EFFICIENT":case 1:message.requestedReferenceRoutes[i]=1;break;case"SHORTER_DISTANCE":case 2:message.requestedReferenceRoutes[i]=2;break}}if(object.extraComputations){if(!Array.isArray(object.extraComputations))throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.extraComputations: array expected");message.extraComputations=[];for(var i=0;i<object.extraComputations.length;++i)switch(object.extraComputations[i]){default:if(typeof object.extraComputations[i]==="number"){message.extraComputations[i]=object.extraComputations[i];break}case"EXTRA_COMPUTATION_UNSPECIFIED":case 0:message.extraComputations[i]=0;break;case"TOLLS":case 1:message.extraComputations[i]=1;break;case"FUEL_CONSUMPTION":case 2:message.extraComputations[i]=2;break;case"TRAFFIC_ON_POLYLINE":case 3:message.extraComputations[i]=3;break;case"HTML_FORMATTED_NAVIGATION_INSTRUCTIONS":case 4:message.extraComputations[i]=4;break;case"FLYOVER_INFO_ON_POLYLINE":case 7:message.extraComputations[i]=7;break;case"NARROW_ROAD_INFO_ON_POLYLINE":case 8:message.extraComputations[i]=8;break}}switch(object.trafficModel){default:if(typeof object.trafficModel==="number"){message.trafficModel=object.trafficModel;break}break;case"TRAFFIC_MODEL_UNSPECIFIED":case 0:message.trafficModel=0;break;case"BEST_GUESS":case 1:message.trafficModel=1;break;case"PESSIMISTIC":case 2:message.trafficModel=2;break;case"OPTIMISTIC":case 3:message.trafficModel=3;break}if(object.transitPreferences!=null){if(typeof object.transitPreferences!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.transitPreferences: object expected");message.transitPreferences=$root.google.maps.routing.v2.TransitPreferences.fromObject(object.transitPreferences,long+1)}return message};ComputeRoutesRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.intermediates=[];object.requestedReferenceRoutes=[];object.extraComputations=[]}if(options.defaults){object.origin=null;object.destination=null;object.travelMode=options.enums===String?"TRAVEL_MODE_UNSPECIFIED":0;object.routingPreference=options.enums===String?"ROUTING_PREFERENCE_UNSPECIFIED":0;object.polylineQuality=options.enums===String?"POLYLINE_QUALITY_UNSPECIFIED":0;object.departureTime=null;object.computeAlternativeRoutes=false;object.routeModifiers=null;object.languageCode="";object.units=options.enums===String?"UNITS_UNSPECIFIED":0;object.polylineEncoding=options.enums===String?"POLYLINE_ENCODING_UNSPECIFIED":0;object.optimizeWaypointOrder=false;object.regionCode="";object.trafficModel=options.enums===String?"TRAFFIC_MODEL_UNSPECIFIED":0;object.arrivalTime=null;object.transitPreferences=null}if(message.origin!=null&&message.hasOwnProperty("origin"))object.origin=$root.google.maps.routing.v2.Waypoint.toObject(message.origin,options);if(message.destination!=null&&message.hasOwnProperty("destination"))object.destination=$root.google.maps.routing.v2.Waypoint.toObject(message.destination,options);if(message.intermediates&&message.intermediates.length){object.intermediates=[];for(var j=0;j<message.intermediates.length;++j)object.intermediates[j]=$root.google.maps.routing.v2.Waypoint.toObject(message.intermediates[j],options)}if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))object.travelMode=options.enums===String?$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]===undefined?message.travelMode:$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]:message.travelMode;if(message.routingPreference!=null&&message.hasOwnProperty("routingPreference"))object.routingPreference=options.enums===String?$root.google.maps.routing.v2.RoutingPreference[message.routingPreference]===undefined?message.routingPreference:$root.google.maps.routing.v2.RoutingPreference[message.routingPreference]:message.routingPreference;if(message.polylineQuality!=null&&message.hasOwnProperty("polylineQuality"))object.polylineQuality=options.enums===String?$root.google.maps.routing.v2.PolylineQuality[message.polylineQuality]===undefined?message.polylineQuality:$root.google.maps.routing.v2.PolylineQuality[message.polylineQuality]:message.polylineQuality;if(message.departureTime!=null&&message.hasOwnProperty("departureTime"))object.departureTime=$root.google.protobuf.Timestamp.toObject(message.departureTime,options);if(message.computeAlternativeRoutes!=null&&message.hasOwnProperty("computeAlternativeRoutes"))object.computeAlternativeRoutes=message.computeAlternativeRoutes;if(message.routeModifiers!=null&&message.hasOwnProperty("routeModifiers"))object.routeModifiers=$root.google.maps.routing.v2.RouteModifiers.toObject(message.routeModifiers,options);if(message.languageCode!=null&&message.hasOwnProperty("languageCode"))object.languageCode=message.languageCode;if(message.units!=null&&message.hasOwnProperty("units"))object.units=options.enums===String?$root.google.maps.routing.v2.Units[message.units]===undefined?message.units:$root.google.maps.routing.v2.Units[message.units]:message.units;if(message.polylineEncoding!=null&&message.hasOwnProperty("polylineEncoding"))object.polylineEncoding=options.enums===String?$root.google.maps.routing.v2.PolylineEncoding[message.polylineEncoding]===undefined?message.polylineEncoding:$root.google.maps.routing.v2.PolylineEncoding[message.polylineEncoding]:message.polylineEncoding;if(message.optimizeWaypointOrder!=null&&message.hasOwnProperty("optimizeWaypointOrder"))object.optimizeWaypointOrder=message.optimizeWaypointOrder;if(message.requestedReferenceRoutes&&message.requestedReferenceRoutes.length){object.requestedReferenceRoutes=[];for(var j=0;j<message.requestedReferenceRoutes.length;++j)object.requestedReferenceRoutes[j]=options.enums===String?$root.google.maps.routing.v2.ComputeRoutesRequest.ReferenceRoute[message.requestedReferenceRoutes[j]]===undefined?message.requestedReferenceRoutes[j]:$root.google.maps.routing.v2.ComputeRoutesRequest.ReferenceRoute[message.requestedReferenceRoutes[j]]:message.requestedReferenceRoutes[j]}if(message.extraComputations&&message.extraComputations.length){object.extraComputations=[];for(var j=0;j<message.extraComputations.length;++j)object.extraComputations[j]=options.enums===String?$root.google.maps.routing.v2.ComputeRoutesRequest.ExtraComputation[message.extraComputations[j]]===undefined?message.extraComputations[j]:$root.google.maps.routing.v2.ComputeRoutesRequest.ExtraComputation[message.extraComputations[j]]:message.extraComputations[j]}if(message.regionCode!=null&&message.hasOwnProperty("regionCode"))object.regionCode=message.regionCode;if(message.trafficModel!=null&&message.hasOwnProperty("trafficModel"))object.trafficModel=options.enums===String?$root.google.maps.routing.v2.TrafficModel[message.trafficModel]===undefined?message.trafficModel:$root.google.maps.routing.v2.TrafficModel[message.trafficModel]:message.trafficModel;if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime"))object.arrivalTime=$root.google.protobuf.Timestamp.toObject(message.arrivalTime,options);if(message.transitPreferences!=null&&message.hasOwnProperty("transitPreferences"))object.transitPreferences=$root.google.maps.routing.v2.TransitPreferences.toObject(message.transitPreferences,options);return object};ComputeRoutesRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ComputeRoutesRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.ComputeRoutesRequest"};ComputeRoutesRequest.ReferenceRoute=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="REFERENCE_ROUTE_UNSPECIFIED"]=0;values[valuesById[1]="FUEL_EFFICIENT"]=1;values[valuesById[2]="SHORTER_DISTANCE"]=2;return values}();ComputeRoutesRequest.ExtraComputation=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="EXTRA_COMPUTATION_UNSPECIFIED"]=0;values[valuesById[1]="TOLLS"]=1;values[valuesById[2]="FUEL_CONSUMPTION"]=2;values[valuesById[3]="TRAFFIC_ON_POLYLINE"]=3;values[valuesById[4]="HTML_FORMATTED_NAVIGATION_INSTRUCTIONS"]=4;values[valuesById[7]="FLYOVER_INFO_ON_POLYLINE"]=7;values[valuesById[8]="NARROW_ROAD_INFO_ON_POLYLINE"]=8;return values}();return ComputeRoutesRequest}();v2.ComputeRoutesResponse=function(){function ComputeRoutesResponse(properties){this.routes=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ComputeRoutesResponse.prototype.routes=$util.emptyArray;ComputeRoutesResponse.prototype.fallbackInfo=null;ComputeRoutesResponse.prototype.geocodingResults=null;ComputeRoutesResponse.create=function create(properties){return new ComputeRoutesResponse(properties)};ComputeRoutesResponse.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.routes!=null&&message.routes.length)for(var i=0;i<message.routes.length;++i)$root.google.maps.routing.v2.Route.encode(message.routes[i],writer.uint32(10).fork()).ldelim();if(message.fallbackInfo!=null&&Object.hasOwnProperty.call(message,"fallbackInfo"))$root.google.maps.routing.v2.FallbackInfo.encode(message.fallbackInfo,writer.uint32(18).fork()).ldelim();if(message.geocodingResults!=null&&Object.hasOwnProperty.call(message,"geocodingResults"))$root.google.maps.routing.v2.GeocodingResults.encode(message.geocodingResults,writer.uint32(26).fork()).ldelim();return writer};ComputeRoutesResponse.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ComputeRoutesResponse.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.ComputeRoutesResponse;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.routes&&message.routes.length))message.routes=[];message.routes.push($root.google.maps.routing.v2.Route.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.fallbackInfo=$root.google.maps.routing.v2.FallbackInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.geocodingResults=$root.google.maps.routing.v2.GeocodingResults.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ComputeRoutesResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ComputeRoutesResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.routes!=null&&message.hasOwnProperty("routes")){if(!Array.isArray(message.routes))return"routes: array expected";for(var i=0;i<message.routes.length;++i){var error=$root.google.maps.routing.v2.Route.verify(message.routes[i],long+1);if(error)return"routes."+error}}if(message.fallbackInfo!=null&&message.hasOwnProperty("fallbackInfo")){var error=$root.google.maps.routing.v2.FallbackInfo.verify(message.fallbackInfo,long+1);if(error)return"fallbackInfo."+error}if(message.geocodingResults!=null&&message.hasOwnProperty("geocodingResults")){var error=$root.google.maps.routing.v2.GeocodingResults.verify(message.geocodingResults,long+1);if(error)return"geocodingResults."+error}return null};ComputeRoutesResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.ComputeRoutesResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.ComputeRoutesResponse;if(object.routes){if(!Array.isArray(object.routes))throw TypeError(".google.maps.routing.v2.ComputeRoutesResponse.routes: array expected");message.routes=[];for(var i=0;i<object.routes.length;++i){if(typeof object.routes[i]!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesResponse.routes: object expected");message.routes[i]=$root.google.maps.routing.v2.Route.fromObject(object.routes[i],long+1)}}if(object.fallbackInfo!=null){if(typeof object.fallbackInfo!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesResponse.fallbackInfo: object expected");message.fallbackInfo=$root.google.maps.routing.v2.FallbackInfo.fromObject(object.fallbackInfo,long+1)}if(object.geocodingResults!=null){if(typeof object.geocodingResults!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesResponse.geocodingResults: object expected");message.geocodingResults=$root.google.maps.routing.v2.GeocodingResults.fromObject(object.geocodingResults,long+1)}return message};ComputeRoutesResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.routes=[];if(options.defaults){object.fallbackInfo=null;object.geocodingResults=null}if(message.routes&&message.routes.length){object.routes=[];for(var j=0;j<message.routes.length;++j)object.routes[j]=$root.google.maps.routing.v2.Route.toObject(message.routes[j],options)}if(message.fallbackInfo!=null&&message.hasOwnProperty("fallbackInfo"))object.fallbackInfo=$root.google.maps.routing.v2.FallbackInfo.toObject(message.fallbackInfo,options);if(message.geocodingResults!=null&&message.hasOwnProperty("geocodingResults"))object.geocodingResults=$root.google.maps.routing.v2.GeocodingResults.toObject(message.geocodingResults,options);return object};ComputeRoutesResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ComputeRoutesResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.ComputeRoutesResponse"};return ComputeRoutesResponse}();v2.ComputeRouteMatrixRequest=function(){function ComputeRouteMatrixRequest(properties){this.origins=[];this.destinations=[];this.extraComputations=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ComputeRouteMatrixRequest.prototype.origins=$util.emptyArray;ComputeRouteMatrixRequest.prototype.destinations=$util.emptyArray;ComputeRouteMatrixRequest.prototype.travelMode=0;ComputeRouteMatrixRequest.prototype.routingPreference=0;ComputeRouteMatrixRequest.prototype.departureTime=null;ComputeRouteMatrixRequest.prototype.arrivalTime=null;ComputeRouteMatrixRequest.prototype.languageCode="";ComputeRouteMatrixRequest.prototype.regionCode="";ComputeRouteMatrixRequest.prototype.units=0;ComputeRouteMatrixRequest.prototype.extraComputations=$util.emptyArray;ComputeRouteMatrixRequest.prototype.trafficModel=0;ComputeRouteMatrixRequest.prototype.transitPreferences=null;ComputeRouteMatrixRequest.create=function create(properties){return new ComputeRouteMatrixRequest(properties)};ComputeRouteMatrixRequest.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.origins!=null&&message.origins.length)for(var i=0;i<message.origins.length;++i)$root.google.maps.routing.v2.RouteMatrixOrigin.encode(message.origins[i],writer.uint32(10).fork()).ldelim();if(message.destinations!=null&&message.destinations.length)for(var i=0;i<message.destinations.length;++i)$root.google.maps.routing.v2.RouteMatrixDestination.encode(message.destinations[i],writer.uint32(18).fork()).ldelim();if(message.travelMode!=null&&Object.hasOwnProperty.call(message,"travelMode"))writer.uint32(24).int32(message.travelMode);if(message.routingPreference!=null&&Object.hasOwnProperty.call(message,"routingPreference"))writer.uint32(32).int32(message.routingPreference);if(message.departureTime!=null&&Object.hasOwnProperty.call(message,"departureTime"))$root.google.protobuf.Timestamp.encode(message.departureTime,writer.uint32(42).fork()).ldelim();if(message.languageCode!=null&&Object.hasOwnProperty.call(message,"languageCode"))writer.uint32(50).string(message.languageCode);if(message.units!=null&&Object.hasOwnProperty.call(message,"units"))writer.uint32(56).int32(message.units);if(message.extraComputations!=null&&message.extraComputations.length){writer.uint32(66).fork();for(var i=0;i<message.extraComputations.length;++i)writer.int32(message.extraComputations[i]);writer.ldelim()}if(message.regionCode!=null&&Object.hasOwnProperty.call(message,"regionCode"))writer.uint32(74).string(message.regionCode);if(message.trafficModel!=null&&Object.hasOwnProperty.call(message,"trafficModel"))writer.uint32(80).int32(message.trafficModel);if(message.arrivalTime!=null&&Object.hasOwnProperty.call(message,"arrivalTime"))$root.google.protobuf.Timestamp.encode(message.arrivalTime,writer.uint32(90).fork()).ldelim();if(message.transitPreferences!=null&&Object.hasOwnProperty.call(message,"transitPreferences"))$root.google.maps.routing.v2.TransitPreferences.encode(message.transitPreferences,writer.uint32(98).fork()).ldelim();return writer};ComputeRouteMatrixRequest.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ComputeRouteMatrixRequest.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.ComputeRouteMatrixRequest;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.origins&&message.origins.length))message.origins=[];message.origins.push($root.google.maps.routing.v2.RouteMatrixOrigin.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{if(!(message.destinations&&message.destinations.length))message.destinations=[];message.destinations.push($root.google.maps.routing.v2.RouteMatrixDestination.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.travelMode=reader.int32();break}case 4:{message.routingPreference=reader.int32();break}case 5:{message.departureTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 11:{message.arrivalTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.languageCode=reader.string();break}case 9:{message.regionCode=reader.string();break}case 7:{message.units=reader.int32();break}case 8:{if(!(message.extraComputations&&message.extraComputations.length))message.extraComputations=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.extraComputations.push(reader.int32())}else message.extraComputations.push(reader.int32());break}case 10:{message.trafficModel=reader.int32();break}case 12:{message.transitPreferences=$root.google.maps.routing.v2.TransitPreferences.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ComputeRouteMatrixRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ComputeRouteMatrixRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.origins!=null&&message.hasOwnProperty("origins")){if(!Array.isArray(message.origins))return"origins: array expected";for(var i=0;i<message.origins.length;++i){var error=$root.google.maps.routing.v2.RouteMatrixOrigin.verify(message.origins[i],long+1);if(error)return"origins."+error}}if(message.destinations!=null&&message.hasOwnProperty("destinations")){if(!Array.isArray(message.destinations))return"destinations: array expected";for(var i=0;i<message.destinations.length;++i){var error=$root.google.maps.routing.v2.RouteMatrixDestination.verify(message.destinations[i],long+1);if(error)return"destinations."+error}}if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))switch(message.travelMode){default:return"travelMode: enum value expected";case 0:case 1:case 2:case 3:case 4:case 7:break}if(message.routingPreference!=null&&message.hasOwnProperty("routingPreference"))switch(message.routingPreference){default:return"routingPreference: enum value expected";case 0:case 1:case 2:case 3:break}if(message.departureTime!=null&&message.hasOwnProperty("departureTime")){var error=$root.google.protobuf.Timestamp.verify(message.departureTime,long+1);if(error)return"departureTime."+error}if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime")){var error=$root.google.protobuf.Timestamp.verify(message.arrivalTime,long+1);if(error)return"arrivalTime."+error}if(message.languageCode!=null&&message.hasOwnProperty("languageCode"))if(!$util.isString(message.languageCode))return"languageCode: string expected";if(message.regionCode!=null&&message.hasOwnProperty("regionCode"))if(!$util.isString(message.regionCode))return"regionCode: string expected";if(message.units!=null&&message.hasOwnProperty("units"))switch(message.units){default:return"units: enum value expected";case 0:case 1:case 2:break}if(message.extraComputations!=null&&message.hasOwnProperty("extraComputations")){if(!Array.isArray(message.extraComputations))return"extraComputations: array expected";for(var i=0;i<message.extraComputations.length;++i)switch(message.extraComputations[i]){default:return"extraComputations: enum value[] expected";case 0:case 1:break}}if(message.trafficModel!=null&&message.hasOwnProperty("trafficModel"))switch(message.trafficModel){default:return"trafficModel: enum value expected";case 0:case 1:case 2:case 3:break}if(message.transitPreferences!=null&&message.hasOwnProperty("transitPreferences")){var error=$root.google.maps.routing.v2.TransitPreferences.verify(message.transitPreferences,long+1);if(error)return"transitPreferences."+error}return null};ComputeRouteMatrixRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.ComputeRouteMatrixRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.ComputeRouteMatrixRequest;if(object.origins){if(!Array.isArray(object.origins))throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.origins: array expected");message.origins=[];for(var i=0;i<object.origins.length;++i){if(typeof object.origins[i]!=="object")throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.origins: object expected");message.origins[i]=$root.google.maps.routing.v2.RouteMatrixOrigin.fromObject(object.origins[i],long+1)}}if(object.destinations){if(!Array.isArray(object.destinations))throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.destinations: array expected");message.destinations=[];for(var i=0;i<object.destinations.length;++i){if(typeof object.destinations[i]!=="object")throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.destinations: object expected");message.destinations[i]=$root.google.maps.routing.v2.RouteMatrixDestination.fromObject(object.destinations[i],long+1)}}switch(object.travelMode){default:if(typeof object.travelMode==="number"){message.travelMode=object.travelMode;break}break;case"TRAVEL_MODE_UNSPECIFIED":case 0:message.travelMode=0;break;case"DRIVE":case 1:message.travelMode=1;break;case"BICYCLE":case 2:message.travelMode=2;break;case"WALK":case 3:message.travelMode=3;break;case"TWO_WHEELER":case 4:message.travelMode=4;break;case"TRANSIT":case 7:message.travelMode=7;break}switch(object.routingPreference){default:if(typeof object.routingPreference==="number"){message.routingPreference=object.routingPreference;break}break;case"ROUTING_PREFERENCE_UNSPECIFIED":case 0:message.routingPreference=0;break;case"TRAFFIC_UNAWARE":case 1:message.routingPreference=1;break;case"TRAFFIC_AWARE":case 2:message.routingPreference=2;break;case"TRAFFIC_AWARE_OPTIMAL":case 3:message.routingPreference=3;break}if(object.departureTime!=null){if(typeof object.departureTime!=="object")throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.departureTime: object expected");message.departureTime=$root.google.protobuf.Timestamp.fromObject(object.departureTime,long+1)}if(object.arrivalTime!=null){if(typeof object.arrivalTime!=="object")throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.arrivalTime: object expected");message.arrivalTime=$root.google.protobuf.Timestamp.fromObject(object.arrivalTime,long+1)}if(object.languageCode!=null)message.languageCode=String(object.languageCode);if(object.regionCode!=null)message.regionCode=String(object.regionCode);switch(object.units){default:if(typeof object.units==="number"){message.units=object.units;break}break;case"UNITS_UNSPECIFIED":case 0:message.units=0;break;case"METRIC":case 1:message.units=1;break;case"IMPERIAL":case 2:message.units=2;break}if(object.extraComputations){if(!Array.isArray(object.extraComputations))throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.extraComputations: array expected");message.extraComputations=[];for(var i=0;i<object.extraComputations.length;++i)switch(object.extraComputations[i]){default:if(typeof object.extraComputations[i]==="number"){message.extraComputations[i]=object.extraComputations[i];break}case"EXTRA_COMPUTATION_UNSPECIFIED":case 0:message.extraComputations[i]=0;break;case"TOLLS":case 1:message.extraComputations[i]=1;break}}switch(object.trafficModel){default:if(typeof object.trafficModel==="number"){message.trafficModel=object.trafficModel;break}break;case"TRAFFIC_MODEL_UNSPECIFIED":case 0:message.trafficModel=0;break;case"BEST_GUESS":case 1:message.trafficModel=1;break;case"PESSIMISTIC":case 2:message.trafficModel=2;break;case"OPTIMISTIC":case 3:message.trafficModel=3;break}if(object.transitPreferences!=null){if(typeof object.transitPreferences!=="object")throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.transitPreferences: object expected");message.transitPreferences=$root.google.maps.routing.v2.TransitPreferences.fromObject(object.transitPreferences,long+1)}return message};ComputeRouteMatrixRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.origins=[];object.destinations=[];object.extraComputations=[]}if(options.defaults){object.travelMode=options.enums===String?"TRAVEL_MODE_UNSPECIFIED":0;object.routingPreference=options.enums===String?"ROUTING_PREFERENCE_UNSPECIFIED":0;object.departureTime=null;object.languageCode="";object.units=options.enums===String?"UNITS_UNSPECIFIED":0;object.regionCode="";object.trafficModel=options.enums===String?"TRAFFIC_MODEL_UNSPECIFIED":0;object.arrivalTime=null;object.transitPreferences=null}if(message.origins&&message.origins.length){object.origins=[];for(var j=0;j<message.origins.length;++j)object.origins[j]=$root.google.maps.routing.v2.RouteMatrixOrigin.toObject(message.origins[j],options)}if(message.destinations&&message.destinations.length){object.destinations=[];for(var j=0;j<message.destinations.length;++j)object.destinations[j]=$root.google.maps.routing.v2.RouteMatrixDestination.toObject(message.destinations[j],options)}if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))object.travelMode=options.enums===String?$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]===undefined?message.travelMode:$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]:message.travelMode;if(message.routingPreference!=null&&message.hasOwnProperty("routingPreference"))object.routingPreference=options.enums===String?$root.google.maps.routing.v2.RoutingPreference[message.routingPreference]===undefined?message.routingPreference:$root.google.maps.routing.v2.RoutingPreference[message.routingPreference]:message.routingPreference;if(message.departureTime!=null&&message.hasOwnProperty("departureTime"))object.departureTime=$root.google.protobuf.Timestamp.toObject(message.departureTime,options);if(message.languageCode!=null&&message.hasOwnProperty("languageCode"))object.languageCode=message.languageCode;if(message.units!=null&&message.hasOwnProperty("units"))object.units=options.enums===String?$root.google.maps.routing.v2.Units[message.units]===undefined?message.units:$root.google.maps.routing.v2.Units[message.units]:message.units;if(message.extraComputations&&message.extraComputations.length){object.extraComputations=[];for(var j=0;j<message.extraComputations.length;++j)object.extraComputations[j]=options.enums===String?$root.google.maps.routing.v2.ComputeRouteMatrixRequest.ExtraComputation[message.extraComputations[j]]===undefined?message.extraComputations[j]:$root.google.maps.routing.v2.ComputeRouteMatrixRequest.ExtraComputation[message.extraComputations[j]]:message.extraComputations[j]}if(message.regionCode!=null&&message.hasOwnProperty("regionCode"))object.regionCode=message.regionCode;if(message.trafficModel!=null&&message.hasOwnProperty("trafficModel"))object.trafficModel=options.enums===String?$root.google.maps.routing.v2.TrafficModel[message.trafficModel]===undefined?message.trafficModel:$root.google.maps.routing.v2.TrafficModel[message.trafficModel]:message.trafficModel;if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime"))object.arrivalTime=$root.google.protobuf.Timestamp.toObject(message.arrivalTime,options);if(message.transitPreferences!=null&&message.hasOwnProperty("transitPreferences"))object.transitPreferences=$root.google.maps.routing.v2.TransitPreferences.toObject(message.transitPreferences,options);return object};ComputeRouteMatrixRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ComputeRouteMatrixRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.ComputeRouteMatrixRequest"};ComputeRouteMatrixRequest.ExtraComputation=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="EXTRA_COMPUTATION_UNSPECIFIED"]=0;values[valuesById[1]="TOLLS"]=1;return values}();return ComputeRouteMatrixRequest}();v2.RouteMatrixOrigin=function(){function RouteMatrixOrigin(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteMatrixOrigin.prototype.waypoint=null;RouteMatrixOrigin.prototype.routeModifiers=null;RouteMatrixOrigin.create=function create(properties){return new RouteMatrixOrigin(properties)};RouteMatrixOrigin.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.waypoint!=null&&Object.hasOwnProperty.call(message,"waypoint"))$root.google.maps.routing.v2.Waypoint.encode(message.waypoint,writer.uint32(10).fork()).ldelim();if(message.routeModifiers!=null&&Object.hasOwnProperty.call(message,"routeModifiers"))$root.google.maps.routing.v2.RouteModifiers.encode(message.routeModifiers,writer.uint32(18).fork()).ldelim();return writer};RouteMatrixOrigin.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteMatrixOrigin.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteMatrixOrigin;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.waypoint=$root.google.maps.routing.v2.Waypoint.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.routeModifiers=$root.google.maps.routing.v2.RouteModifiers.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteMatrixOrigin.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteMatrixOrigin.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.waypoint!=null&&message.hasOwnProperty("waypoint")){var error=$root.google.maps.routing.v2.Waypoint.verify(message.waypoint,long+1);if(error)return"waypoint."+error}if(message.routeModifiers!=null&&message.hasOwnProperty("routeModifiers")){var error=$root.google.maps.routing.v2.RouteModifiers.verify(message.routeModifiers,long+1);if(error)return"routeModifiers."+error}return null};RouteMatrixOrigin.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteMatrixOrigin)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteMatrixOrigin;if(object.waypoint!=null){if(typeof object.waypoint!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixOrigin.waypoint: object expected");message.waypoint=$root.google.maps.routing.v2.Waypoint.fromObject(object.waypoint,long+1)}if(object.routeModifiers!=null){if(typeof object.routeModifiers!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixOrigin.routeModifiers: object expected");message.routeModifiers=$root.google.maps.routing.v2.RouteModifiers.fromObject(object.routeModifiers,long+1)}return message};RouteMatrixOrigin.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.waypoint=null;object.routeModifiers=null}if(message.waypoint!=null&&message.hasOwnProperty("waypoint"))object.waypoint=$root.google.maps.routing.v2.Waypoint.toObject(message.waypoint,options);if(message.routeModifiers!=null&&message.hasOwnProperty("routeModifiers"))object.routeModifiers=$root.google.maps.routing.v2.RouteModifiers.toObject(message.routeModifiers,options);return object};RouteMatrixOrigin.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteMatrixOrigin.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteMatrixOrigin"};return RouteMatrixOrigin}();v2.RouteMatrixDestination=function(){function RouteMatrixDestination(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteMatrixDestination.prototype.waypoint=null;RouteMatrixDestination.create=function create(properties){return new RouteMatrixDestination(properties)};RouteMatrixDestination.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.waypoint!=null&&Object.hasOwnProperty.call(message,"waypoint"))$root.google.maps.routing.v2.Waypoint.encode(message.waypoint,writer.uint32(10).fork()).ldelim();return writer};RouteMatrixDestination.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteMatrixDestination.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteMatrixDestination;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.waypoint=$root.google.maps.routing.v2.Waypoint.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteMatrixDestination.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteMatrixDestination.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.waypoint!=null&&message.hasOwnProperty("waypoint")){var error=$root.google.maps.routing.v2.Waypoint.verify(message.waypoint,long+1);if(error)return"waypoint."+error}return null};RouteMatrixDestination.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteMatrixDestination)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteMatrixDestination;if(object.waypoint!=null){if(typeof object.waypoint!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixDestination.waypoint: object expected");message.waypoint=$root.google.maps.routing.v2.Waypoint.fromObject(object.waypoint,long+1)}return message};RouteMatrixDestination.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.waypoint=null;if(message.waypoint!=null&&message.hasOwnProperty("waypoint"))object.waypoint=$root.google.maps.routing.v2.Waypoint.toObject(message.waypoint,options);return object};RouteMatrixDestination.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteMatrixDestination.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteMatrixDestination"};return RouteMatrixDestination}();v2.RouteMatrixElement=function(){function RouteMatrixElement(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteMatrixElement.prototype.originIndex=null;RouteMatrixElement.prototype.destinationIndex=null;RouteMatrixElement.prototype.status=null;RouteMatrixElement.prototype.condition=0;RouteMatrixElement.prototype.distanceMeters=0;RouteMatrixElement.prototype.duration=null;RouteMatrixElement.prototype.staticDuration=null;RouteMatrixElement.prototype.travelAdvisory=null;RouteMatrixElement.prototype.fallbackInfo=null;RouteMatrixElement.prototype.localizedValues=null;var $oneOfFields;Object.defineProperty(RouteMatrixElement.prototype,"_originIndex",{get:$util.oneOfGetter($oneOfFields=["originIndex"]),set:$util.oneOfSetter($oneOfFields)});Object.defineProperty(RouteMatrixElement.prototype,"_destinationIndex",{get:$util.oneOfGetter($oneOfFields=["destinationIndex"]),set:$util.oneOfSetter($oneOfFields)});RouteMatrixElement.create=function create(properties){return new RouteMatrixElement(properties)};RouteMatrixElement.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.originIndex!=null&&Object.hasOwnProperty.call(message,"originIndex"))writer.uint32(8).int32(message.originIndex);if(message.destinationIndex!=null&&Object.hasOwnProperty.call(message,"destinationIndex"))writer.uint32(16).int32(message.destinationIndex);if(message.status!=null&&Object.hasOwnProperty.call(message,"status"))$root.google.rpc.Status.encode(message.status,writer.uint32(26).fork()).ldelim();if(message.distanceMeters!=null&&Object.hasOwnProperty.call(message,"distanceMeters"))writer.uint32(32).int32(message.distanceMeters);if(message.duration!=null&&Object.hasOwnProperty.call(message,"duration"))$root.google.protobuf.Duration.encode(message.duration,writer.uint32(42).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.protobuf.Duration.encode(message.staticDuration,writer.uint32(50).fork()).ldelim();if(message.travelAdvisory!=null&&Object.hasOwnProperty.call(message,"travelAdvisory"))$root.google.maps.routing.v2.RouteTravelAdvisory.encode(message.travelAdvisory,writer.uint32(58).fork()).ldelim();if(message.fallbackInfo!=null&&Object.hasOwnProperty.call(message,"fallbackInfo"))$root.google.maps.routing.v2.FallbackInfo.encode(message.fallbackInfo,writer.uint32(66).fork()).ldelim();if(message.condition!=null&&Object.hasOwnProperty.call(message,"condition"))writer.uint32(72).int32(message.condition);if(message.localizedValues!=null&&Object.hasOwnProperty.call(message,"localizedValues"))$root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues.encode(message.localizedValues,writer.uint32(82).fork()).ldelim();return writer};RouteMatrixElement.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteMatrixElement.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteMatrixElement;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.originIndex=reader.int32();break}case 2:{message.destinationIndex=reader.int32();break}case 3:{message.status=$root.google.rpc.Status.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.condition=reader.int32();break}case 4:{message.distanceMeters=reader.int32();break}case 5:{message.duration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.staticDuration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.travelAdvisory=$root.google.maps.routing.v2.RouteTravelAdvisory.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.fallbackInfo=$root.google.maps.routing.v2.FallbackInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.localizedValues=$root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteMatrixElement.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteMatrixElement.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.originIndex!=null&&message.hasOwnProperty("originIndex")){properties._originIndex=1;if(!$util.isInteger(message.originIndex))return"originIndex: integer expected"}if(message.destinationIndex!=null&&message.hasOwnProperty("destinationIndex")){properties._destinationIndex=1;if(!$util.isInteger(message.destinationIndex))return"destinationIndex: integer expected"}if(message.status!=null&&message.hasOwnProperty("status")){var error=$root.google.rpc.Status.verify(message.status,long+1);if(error)return"status."+error}if(message.condition!=null&&message.hasOwnProperty("condition"))switch(message.condition){default:return"condition: enum value expected";case 0:case 1:case 2:break}if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))if(!$util.isInteger(message.distanceMeters))return"distanceMeters: integer expected";if(message.duration!=null&&message.hasOwnProperty("duration")){var error=$root.google.protobuf.Duration.verify(message.duration,long+1);if(error)return"duration."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.protobuf.Duration.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory")){var error=$root.google.maps.routing.v2.RouteTravelAdvisory.verify(message.travelAdvisory,long+1);if(error)return"travelAdvisory."+error}if(message.fallbackInfo!=null&&message.hasOwnProperty("fallbackInfo")){var error=$root.google.maps.routing.v2.FallbackInfo.verify(message.fallbackInfo,long+1);if(error)return"fallbackInfo."+error}if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues")){var error=$root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues.verify(message.localizedValues,long+1);if(error)return"localizedValues."+error}return null};RouteMatrixElement.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteMatrixElement)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteMatrixElement;if(object.originIndex!=null)message.originIndex=object.originIndex|0;if(object.destinationIndex!=null)message.destinationIndex=object.destinationIndex|0;if(object.status!=null){if(typeof object.status!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.status: object expected");message.status=$root.google.rpc.Status.fromObject(object.status,long+1)}switch(object.condition){default:if(typeof object.condition==="number"){message.condition=object.condition;break}break;case"ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED":case 0:message.condition=0;break;case"ROUTE_EXISTS":case 1:message.condition=1;break;case"ROUTE_NOT_FOUND":case 2:message.condition=2;break}if(object.distanceMeters!=null)message.distanceMeters=object.distanceMeters|0;if(object.duration!=null){if(typeof object.duration!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.duration: object expected");message.duration=$root.google.protobuf.Duration.fromObject(object.duration,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.staticDuration: object expected");message.staticDuration=$root.google.protobuf.Duration.fromObject(object.staticDuration,long+1)}if(object.travelAdvisory!=null){if(typeof object.travelAdvisory!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.travelAdvisory: object expected");message.travelAdvisory=$root.google.maps.routing.v2.RouteTravelAdvisory.fromObject(object.travelAdvisory,long+1)}if(object.fallbackInfo!=null){if(typeof object.fallbackInfo!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.fallbackInfo: object expected");message.fallbackInfo=$root.google.maps.routing.v2.FallbackInfo.fromObject(object.fallbackInfo,long+1)}if(object.localizedValues!=null){if(typeof object.localizedValues!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.localizedValues: object expected");message.localizedValues=$root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues.fromObject(object.localizedValues,long+1)}return message};RouteMatrixElement.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.status=null;object.distanceMeters=0;object.duration=null;object.staticDuration=null;object.travelAdvisory=null;object.fallbackInfo=null;object.condition=options.enums===String?"ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED":0;object.localizedValues=null}if(message.originIndex!=null&&message.hasOwnProperty("originIndex")){object.originIndex=message.originIndex;if(options.oneofs)object._originIndex="originIndex"}if(message.destinationIndex!=null&&message.hasOwnProperty("destinationIndex")){object.destinationIndex=message.destinationIndex;if(options.oneofs)object._destinationIndex="destinationIndex"}if(message.status!=null&&message.hasOwnProperty("status"))object.status=$root.google.rpc.Status.toObject(message.status,options);if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))object.distanceMeters=message.distanceMeters;if(message.duration!=null&&message.hasOwnProperty("duration"))object.duration=$root.google.protobuf.Duration.toObject(message.duration,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.protobuf.Duration.toObject(message.staticDuration,options);if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory"))object.travelAdvisory=$root.google.maps.routing.v2.RouteTravelAdvisory.toObject(message.travelAdvisory,options);if(message.fallbackInfo!=null&&message.hasOwnProperty("fallbackInfo"))object.fallbackInfo=$root.google.maps.routing.v2.FallbackInfo.toObject(message.fallbackInfo,options);if(message.condition!=null&&message.hasOwnProperty("condition"))object.condition=options.enums===String?$root.google.maps.routing.v2.RouteMatrixElementCondition[message.condition]===undefined?message.condition:$root.google.maps.routing.v2.RouteMatrixElementCondition[message.condition]:message.condition;if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues"))object.localizedValues=$root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues.toObject(message.localizedValues,options);return object};RouteMatrixElement.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteMatrixElement.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteMatrixElement"};RouteMatrixElement.LocalizedValues=function(){function LocalizedValues(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}LocalizedValues.prototype.distance=null;LocalizedValues.prototype.duration=null;LocalizedValues.prototype.staticDuration=null;LocalizedValues.prototype.transitFare=null;LocalizedValues.create=function create(properties){return new LocalizedValues(properties)};LocalizedValues.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.distance!=null&&Object.hasOwnProperty.call(message,"distance"))$root.google.type.LocalizedText.encode(message.distance,writer.uint32(10).fork()).ldelim();if(message.duration!=null&&Object.hasOwnProperty.call(message,"duration"))$root.google.type.LocalizedText.encode(message.duration,writer.uint32(18).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.type.LocalizedText.encode(message.staticDuration,writer.uint32(26).fork()).ldelim();if(message.transitFare!=null&&Object.hasOwnProperty.call(message,"transitFare"))$root.google.type.LocalizedText.encode(message.transitFare,writer.uint32(34).fork()).ldelim();return writer};LocalizedValues.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};LocalizedValues.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.distance=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.duration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.staticDuration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.transitFare=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};LocalizedValues.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LocalizedValues.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.distance!=null&&message.hasOwnProperty("distance")){var error=$root.google.type.LocalizedText.verify(message.distance,long+1);if(error)return"distance."+error}if(message.duration!=null&&message.hasOwnProperty("duration")){var error=$root.google.type.LocalizedText.verify(message.duration,long+1);if(error)return"duration."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.type.LocalizedText.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}if(message.transitFare!=null&&message.hasOwnProperty("transitFare")){var error=$root.google.type.LocalizedText.verify(message.transitFare,long+1);if(error)return"transitFare."+error}return null};LocalizedValues.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues;if(object.distance!=null){if(typeof object.distance!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.LocalizedValues.distance: object expected");message.distance=$root.google.type.LocalizedText.fromObject(object.distance,long+1)}if(object.duration!=null){if(typeof object.duration!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.LocalizedValues.duration: object expected");message.duration=$root.google.type.LocalizedText.fromObject(object.duration,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.LocalizedValues.staticDuration: object expected");message.staticDuration=$root.google.type.LocalizedText.fromObject(object.staticDuration,long+1)}if(object.transitFare!=null){if(typeof object.transitFare!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.LocalizedValues.transitFare: object expected");message.transitFare=$root.google.type.LocalizedText.fromObject(object.transitFare,long+1)}return message};LocalizedValues.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.distance=null;object.duration=null;object.staticDuration=null;object.transitFare=null}if(message.distance!=null&&message.hasOwnProperty("distance"))object.distance=$root.google.type.LocalizedText.toObject(message.distance,options);if(message.duration!=null&&message.hasOwnProperty("duration"))object.duration=$root.google.type.LocalizedText.toObject(message.duration,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.type.LocalizedText.toObject(message.staticDuration,options);if(message.transitFare!=null&&message.hasOwnProperty("transitFare"))object.transitFare=$root.google.type.LocalizedText.toObject(message.transitFare,options);return object};LocalizedValues.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LocalizedValues.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteMatrixElement.LocalizedValues"};return LocalizedValues}();return RouteMatrixElement}();v2.RouteMatrixElementCondition=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED"]=0;values[valuesById[1]="ROUTE_EXISTS"]=1;values[valuesById[2]="ROUTE_NOT_FOUND"]=2;return values}();v2.RoutingPreference=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ROUTING_PREFERENCE_UNSPECIFIED"]=0;values[valuesById[1]="TRAFFIC_UNAWARE"]=1;values[valuesById[2]="TRAFFIC_AWARE"]=2;values[valuesById[3]="TRAFFIC_AWARE_OPTIMAL"]=3;return values}();v2.TrafficModel=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TRAFFIC_MODEL_UNSPECIFIED"]=0;values[valuesById[1]="BEST_GUESS"]=1;values[valuesById[2]="PESSIMISTIC"]=2;values[valuesById[3]="OPTIMISTIC"]=3;return values}();v2.TransitPreferences=function(){function TransitPreferences(properties){this.allowedTravelModes=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitPreferences.prototype.allowedTravelModes=$util.emptyArray;TransitPreferences.prototype.routingPreference=0;TransitPreferences.create=function create(properties){return new TransitPreferences(properties)};TransitPreferences.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.allowedTravelModes!=null&&message.allowedTravelModes.length){writer.uint32(10).fork();for(var i=0;i<message.allowedTravelModes.length;++i)writer.int32(message.allowedTravelModes[i]);writer.ldelim()}if(message.routingPreference!=null&&Object.hasOwnProperty.call(message,"routingPreference"))writer.uint32(16).int32(message.routingPreference);return writer};TransitPreferences.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitPreferences.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.TransitPreferences;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.allowedTravelModes&&message.allowedTravelModes.length))message.allowedTravelModes=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.allowedTravelModes.push(reader.int32())}else message.allowedTravelModes.push(reader.int32());break}case 2:{message.routingPreference=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};TransitPreferences.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitPreferences.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.allowedTravelModes!=null&&message.hasOwnProperty("allowedTravelModes")){if(!Array.isArray(message.allowedTravelModes))return"allowedTravelModes: array expected";for(var i=0;i<message.allowedTravelModes.length;++i)switch(message.allowedTravelModes[i]){default:return"allowedTravelModes: enum value[] expected";case 0:case 1:case 2:case 3:case 4:case 5:break}}if(message.routingPreference!=null&&message.hasOwnProperty("routingPreference"))switch(message.routingPreference){default:return"routingPreference: enum value expected";case 0:case 1:case 2:break}return null};TransitPreferences.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.TransitPreferences)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.TransitPreferences;if(object.allowedTravelModes){if(!Array.isArray(object.allowedTravelModes))throw TypeError(".google.maps.routing.v2.TransitPreferences.allowedTravelModes: array expected");message.allowedTravelModes=[];for(var i=0;i<object.allowedTravelModes.length;++i)switch(object.allowedTravelModes[i]){default:if(typeof object.allowedTravelModes[i]==="number"){message.allowedTravelModes[i]=object.allowedTravelModes[i];break}case"TRANSIT_TRAVEL_MODE_UNSPECIFIED":case 0:message.allowedTravelModes[i]=0;break;case"BUS":case 1:message.allowedTravelModes[i]=1;break;case"SUBWAY":case 2:message.allowedTravelModes[i]=2;break;case"TRAIN":case 3:message.allowedTravelModes[i]=3;break;case"LIGHT_RAIL":case 4:message.allowedTravelModes[i]=4;break;case"RAIL":case 5:message.allowedTravelModes[i]=5;break}}switch(object.routingPreference){default:if(typeof object.routingPreference==="number"){message.routingPreference=object.routingPreference;break}break;case"TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED":case 0:message.routingPreference=0;break;case"LESS_WALKING":case 1:message.routingPreference=1;break;case"FEWER_TRANSFERS":case 2:message.routingPreference=2;break}return message};TransitPreferences.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.allowedTravelModes=[];if(options.defaults)object.routingPreference=options.enums===String?"TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED":0;if(message.allowedTravelModes&&message.allowedTravelModes.length){object.allowedTravelModes=[];for(var j=0;j<message.allowedTravelModes.length;++j)object.allowedTravelModes[j]=options.enums===String?$root.google.maps.routing.v2.TransitPreferences.TransitTravelMode[message.allowedTravelModes[j]]===undefined?message.allowedTravelModes[j]:$root.google.maps.routing.v2.TransitPreferences.TransitTravelMode[message.allowedTravelModes[j]]:message.allowedTravelModes[j]}if(message.routingPreference!=null&&message.hasOwnProperty("routingPreference"))object.routingPreference=options.enums===String?$root.google.maps.routing.v2.TransitPreferences.TransitRoutingPreference[message.routingPreference]===undefined?message.routingPreference:$root.google.maps.routing.v2.TransitPreferences.TransitRoutingPreference[message.routingPreference]:message.routingPreference;return object};TransitPreferences.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitPreferences.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.TransitPreferences"};TransitPreferences.TransitTravelMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TRANSIT_TRAVEL_MODE_UNSPECIFIED"]=0;values[valuesById[1]="BUS"]=1;values[valuesById[2]="SUBWAY"]=2;values[valuesById[3]="TRAIN"]=3;values[valuesById[4]="LIGHT_RAIL"]=4;values[valuesById[5]="RAIL"]=5;return values}();TransitPreferences.TransitRoutingPreference=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED"]=0;values[valuesById[1]="LESS_WALKING"]=1;values[valuesById[2]="FEWER_TRANSFERS"]=2;return values}();return TransitPreferences}();v2.Units=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="UNITS_UNSPECIFIED"]=0;values[valuesById[1]="METRIC"]=1;values[valuesById[2]="IMPERIAL"]=2;return values}();v2.Waypoint=function(){function Waypoint(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Waypoint.prototype.location=null;Waypoint.prototype.placeId=null;Waypoint.prototype.address=null;Waypoint.prototype.navigationPointToken=null;Waypoint.prototype.via=false;Waypoint.prototype.vehicleStopover=false;Waypoint.prototype.sideOfRoad=false;var $oneOfFields;Object.defineProperty(Waypoint.prototype,"locationType",{get:$util.oneOfGetter($oneOfFields=["location","placeId","address","navigationPointToken"]),set:$util.oneOfSetter($oneOfFields)});Waypoint.create=function create(properties){return new Waypoint(properties)};Waypoint.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.location!=null&&Object.hasOwnProperty.call(message,"location"))$root.google.maps.routing.v2.Location.encode(message.location,writer.uint32(10).fork()).ldelim();if(message.placeId!=null&&Object.hasOwnProperty.call(message,"placeId"))writer.uint32(18).string(message.placeId);if(message.via!=null&&Object.hasOwnProperty.call(message,"via"))writer.uint32(24).bool(message.via);if(message.vehicleStopover!=null&&Object.hasOwnProperty.call(message,"vehicleStopover"))writer.uint32(32).bool(message.vehicleStopover);if(message.sideOfRoad!=null&&Object.hasOwnProperty.call(message,"sideOfRoad"))writer.uint32(40).bool(message.sideOfRoad);if(message.address!=null&&Object.hasOwnProperty.call(message,"address"))writer.uint32(58).string(message.address);if(message.navigationPointToken!=null&&Object.hasOwnProperty.call(message,"navigationPointToken"))writer.uint32(66).string(message.navigationPointToken);return writer};Waypoint.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Waypoint.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.Waypoint;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.location=$root.google.maps.routing.v2.Location.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.placeId=reader.string();break}case 7:{message.address=reader.string();break}case 8:{message.navigationPointToken=reader.string();break}case 3:{message.via=reader.bool();break}case 4:{message.vehicleStopover=reader.bool();break}case 5:{message.sideOfRoad=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Waypoint.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Waypoint.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.location!=null&&message.hasOwnProperty("location")){properties.locationType=1;{var error=$root.google.maps.routing.v2.Location.verify(message.location,long+1);if(error)return"location."+error}}if(message.placeId!=null&&message.hasOwnProperty("placeId")){if(properties.locationType===1)return"locationType: multiple values";properties.locationType=1;if(!$util.isString(message.placeId))return"placeId: string expected"}if(message.address!=null&&message.hasOwnProperty("address")){if(properties.locationType===1)return"locationType: multiple values";properties.locationType=1;if(!$util.isString(message.address))return"address: string expected"}if(message.navigationPointToken!=null&&message.hasOwnProperty("navigationPointToken")){if(properties.locationType===1)return"locationType: multiple values";properties.locationType=1;if(!$util.isString(message.navigationPointToken))return"navigationPointToken: string expected"}if(message.via!=null&&message.hasOwnProperty("via"))if(typeof message.via!=="boolean")return"via: boolean expected";if(message.vehicleStopover!=null&&message.hasOwnProperty("vehicleStopover"))if(typeof message.vehicleStopover!=="boolean")return"vehicleStopover: boolean expected";if(message.sideOfRoad!=null&&message.hasOwnProperty("sideOfRoad"))if(typeof message.sideOfRoad!=="boolean")return"sideOfRoad: boolean expected";return null};Waypoint.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.Waypoint)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.Waypoint;if(object.location!=null){if(typeof object.location!=="object")throw TypeError(".google.maps.routing.v2.Waypoint.location: object expected");message.location=$root.google.maps.routing.v2.Location.fromObject(object.location,long+1)}if(object.placeId!=null)message.placeId=String(object.placeId);if(object.address!=null)message.address=String(object.address);if(object.navigationPointToken!=null)message.navigationPointToken=String(object.navigationPointToken);if(object.via!=null)message.via=Boolean(object.via);if(object.vehicleStopover!=null)message.vehicleStopover=Boolean(object.vehicleStopover);if(object.sideOfRoad!=null)message.sideOfRoad=Boolean(object.sideOfRoad);return message};Waypoint.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.via=false;object.vehicleStopover=false;object.sideOfRoad=false}if(message.location!=null&&message.hasOwnProperty("location")){object.location=$root.google.maps.routing.v2.Location.toObject(message.location,options);if(options.oneofs)object.locationType="location"}if(message.placeId!=null&&message.hasOwnProperty("placeId")){object.placeId=message.placeId;if(options.oneofs)object.locationType="placeId"}if(message.via!=null&&message.hasOwnProperty("via"))object.via=message.via;if(message.vehicleStopover!=null&&message.hasOwnProperty("vehicleStopover"))object.vehicleStopover=message.vehicleStopover;if(message.sideOfRoad!=null&&message.hasOwnProperty("sideOfRoad"))object.sideOfRoad=message.sideOfRoad;if(message.address!=null&&message.hasOwnProperty("address")){object.address=message.address;if(options.oneofs)object.locationType="address"}if(message.navigationPointToken!=null&&message.hasOwnProperty("navigationPointToken")){object.navigationPointToken=message.navigationPointToken;if(options.oneofs)object.locationType="navigationPointToken"}return object};Waypoint.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Waypoint.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.Waypoint"};return Waypoint}();return v2}();return routing}();return maps}();google.rpc=function(){var rpc={};rpc.Status=function(){function Status(properties){this.details=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Status.prototype.code=0;Status.prototype.message="";Status.prototype.details=$util.emptyArray;Status.create=function create(properties){return new Status(properties)};Status.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.code!=null&&Object.hasOwnProperty.call(message,"code"))writer.uint32(8).int32(message.code);if(message.message!=null&&Object.hasOwnProperty.call(message,"message"))writer.uint32(18).string(message.message);if(message.details!=null&&message.details.length)for(var i=0;i<message.details.length;++i)$root.google.protobuf.Any.encode(message.details[i],writer.uint32(26).fork()).ldelim();return writer};Status.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Status.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.rpc.Status;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.code=reader.int32();break}case 2:{message.message=reader.string();break}case 3:{if(!(message.details&&message.details.length))message.details=[];message.details.push($root.google.protobuf.Any.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};Status.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Status.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.code!=null&&message.hasOwnProperty("code"))if(!$util.isInteger(message.code))return"code: integer expected";if(message.message!=null&&message.hasOwnProperty("message"))if(!$util.isString(message.message))return"message: string expected";if(message.details!=null&&message.hasOwnProperty("details")){if(!Array.isArray(message.details))return"details: array expected";for(var i=0;i<message.details.length;++i){var error=$root.google.protobuf.Any.verify(message.details[i],long+1);if(error)return"details."+error}}return null};Status.fromObject=function fromObject(object,long){if(object instanceof $root.google.rpc.Status)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.rpc.Status;if(object.code!=null)message.code=object.code|0;if(object.message!=null)message.message=String(object.message);if(object.details){if(!Array.isArray(object.details))throw TypeError(".google.rpc.Status.details: array expected");message.details=[];for(var i=0;i<object.details.length;++i){if(typeof object.details[i]!=="object")throw TypeError(".google.rpc.Status.details: object expected");message.details[i]=$root.google.protobuf.Any.fromObject(object.details[i],long+1)}}return message};Status.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.details=[];if(options.defaults){object.code=0;object.message=""}if(message.code!=null&&message.hasOwnProperty("code"))object.code=message.code;if(message.message!=null&&message.hasOwnProperty("message"))object.message=message.message;if(message.details&&message.details.length){object.details=[];for(var j=0;j<message.details.length;++j)object.details[j]=$root.google.protobuf.Any.toObject(message.details[j],options)}return object};Status.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Status.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.rpc.Status"};return Status}();return rpc}();google.api=function(){var api={};api.FieldBehavior=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="FIELD_BEHAVIOR_UNSPECIFIED"]=0;values[valuesById[1]="OPTIONAL"]=1;values[valuesById[2]="REQUIRED"]=2;values[valuesById[3]="OUTPUT_ONLY"]=3;values[valuesById[4]="INPUT_ONLY"]=4;values[valuesById[5]="IMMUTABLE"]=5;values[valuesById[6]="UNORDERED_LIST"]=6;values[valuesById[7]="NON_EMPTY_DEFAULT"]=7;values[valuesById[8]="IDENTIFIER"]=8;return values}();api.Http=function(){function Http(properties){this.rules=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Http.prototype.rules=$util.emptyArray;Http.prototype.fullyDecodeReservedExpansion=false;Http.create=function create(properties){return new Http(properties)};Http.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.rules!=null&&message.rules.length)for(var i=0;i<message.rules.length;++i)$root.google.api.HttpRule.encode(message.rules[i],writer.uint32(10).fork()).ldelim();if(message.fullyDecodeReservedExpansion!=null&&Object.hasOwnProperty.call(message,"fullyDecodeReservedExpansion"))writer.uint32(16).bool(message.fullyDecodeReservedExpansion);return writer};Http.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Http.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.Http;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.rules&&message.rules.length))message.rules=[];message.rules.push($root.google.api.HttpRule.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.fullyDecodeReservedExpansion=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Http.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Http.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.rules!=null&&message.hasOwnProperty("rules")){if(!Array.isArray(message.rules))return"rules: array expected";for(var i=0;i<message.rules.length;++i){var error=$root.google.api.HttpRule.verify(message.rules[i],long+1);if(error)return"rules."+error}}if(message.fullyDecodeReservedExpansion!=null&&message.hasOwnProperty("fullyDecodeReservedExpansion"))if(typeof message.fullyDecodeReservedExpansion!=="boolean")return"fullyDecodeReservedExpansion: boolean expected";return null};Http.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.Http)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.Http;if(object.rules){if(!Array.isArray(object.rules))throw TypeError(".google.api.Http.rules: array expected");message.rules=[];for(var i=0;i<object.rules.length;++i){if(typeof object.rules[i]!=="object")throw TypeError(".google.api.Http.rules: object expected");message.rules[i]=$root.google.api.HttpRule.fromObject(object.rules[i],long+1)}}if(object.fullyDecodeReservedExpansion!=null)message.fullyDecodeReservedExpansion=Boolean(object.fullyDecodeReservedExpansion);return message};Http.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.rules=[];if(options.defaults)object.fullyDecodeReservedExpansion=false;if(message.rules&&message.rules.length){object.rules=[];for(var j=0;j<message.rules.length;++j)object.rules[j]=$root.google.api.HttpRule.toObject(message.rules[j],options)}if(message.fullyDecodeReservedExpansion!=null&&message.hasOwnProperty("fullyDecodeReservedExpansion"))object.fullyDecodeReservedExpansion=message.fullyDecodeReservedExpansion;return object};Http.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Http.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.Http"};return Http}();api.HttpRule=function(){function HttpRule(properties){this.additionalBindings=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}HttpRule.prototype.selector="";HttpRule.prototype.get=null;HttpRule.prototype.put=null;HttpRule.prototype.post=null;HttpRule.prototype["delete"]=null;HttpRule.prototype.patch=null;HttpRule.prototype.custom=null;HttpRule.prototype.body="";HttpRule.prototype.responseBody="";HttpRule.prototype.additionalBindings=$util.emptyArray;var $oneOfFields;Object.defineProperty(HttpRule.prototype,"pattern",{get:$util.oneOfGetter($oneOfFields=["get","put","post","delete","patch","custom"]),set:$util.oneOfSetter($oneOfFields)});HttpRule.create=function create(properties){return new HttpRule(properties)};HttpRule.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.selector!=null&&Object.hasOwnProperty.call(message,"selector"))writer.uint32(10).string(message.selector);if(message.get!=null&&Object.hasOwnProperty.call(message,"get"))writer.uint32(18).string(message.get);if(message.put!=null&&Object.hasOwnProperty.call(message,"put"))writer.uint32(26).string(message.put);if(message.post!=null&&Object.hasOwnProperty.call(message,"post"))writer.uint32(34).string(message.post);if(message["delete"]!=null&&Object.hasOwnProperty.call(message,"delete"))writer.uint32(42).string(message["delete"]);if(message.patch!=null&&Object.hasOwnProperty.call(message,"patch"))writer.uint32(50).string(message.patch);if(message.body!=null&&Object.hasOwnProperty.call(message,"body"))writer.uint32(58).string(message.body);if(message.custom!=null&&Object.hasOwnProperty.call(message,"custom"))$root.google.api.CustomHttpPattern.encode(message.custom,writer.uint32(66).fork()).ldelim();if(message.additionalBindings!=null&&message.additionalBindings.length)for(var i=0;i<message.additionalBindings.length;++i)$root.google.api.HttpRule.encode(message.additionalBindings[i],writer.uint32(90).fork()).ldelim();if(message.responseBody!=null&&Object.hasOwnProperty.call(message,"responseBody"))writer.uint32(98).string(message.responseBody);return writer};HttpRule.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};HttpRule.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.HttpRule;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.selector=reader.string();break}case 2:{message.get=reader.string();break}case 3:{message.put=reader.string();break}case 4:{message.post=reader.string();break}case 5:{message["delete"]=reader.string();break}case 6:{message.patch=reader.string();break}case 8:{message.custom=$root.google.api.CustomHttpPattern.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.body=reader.string();break}case 12:{message.responseBody=reader.string();break}case 11:{if(!(message.additionalBindings&&message.additionalBindings.length))message.additionalBindings=[];message.additionalBindings.push($root.google.api.HttpRule.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};HttpRule.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};HttpRule.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.selector!=null&&message.hasOwnProperty("selector"))if(!$util.isString(message.selector))return"selector: string expected";if(message.get!=null&&message.hasOwnProperty("get")){properties.pattern=1;if(!$util.isString(message.get))return"get: string expected"}if(message.put!=null&&message.hasOwnProperty("put")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message.put))return"put: string expected"}if(message.post!=null&&message.hasOwnProperty("post")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message.post))return"post: string expected"}if(message["delete"]!=null&&message.hasOwnProperty("delete")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message["delete"]))return"delete: string expected"}if(message.patch!=null&&message.hasOwnProperty("patch")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message.patch))return"patch: string expected"}if(message.custom!=null&&message.hasOwnProperty("custom")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;{var error=$root.google.api.CustomHttpPattern.verify(message.custom,long+1);if(error)return"custom."+error}}if(message.body!=null&&message.hasOwnProperty("body"))if(!$util.isString(message.body))return"body: string expected";if(message.responseBody!=null&&message.hasOwnProperty("responseBody"))if(!$util.isString(message.responseBody))return"responseBody: string expected";if(message.additionalBindings!=null&&message.hasOwnProperty("additionalBindings")){if(!Array.isArray(message.additionalBindings))return"additionalBindings: array expected";for(var i=0;i<message.additionalBindings.length;++i){var error=$root.google.api.HttpRule.verify(message.additionalBindings[i],long+1);if(error)return"additionalBindings."+error}}return null};HttpRule.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.HttpRule)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.HttpRule;if(object.selector!=null)message.selector=String(object.selector);if(object.get!=null)message.get=String(object.get);if(object.put!=null)message.put=String(object.put);if(object.post!=null)message.post=String(object.post);if(object["delete"]!=null)message["delete"]=String(object["delete"]);if(object.patch!=null)message.patch=String(object.patch);if(object.custom!=null){if(typeof object.custom!=="object")throw TypeError(".google.api.HttpRule.custom: object expected");message.custom=$root.google.api.CustomHttpPattern.fromObject(object.custom,long+1)}if(object.body!=null)message.body=String(object.body);if(object.responseBody!=null)message.responseBody=String(object.responseBody);if(object.additionalBindings){if(!Array.isArray(object.additionalBindings))throw TypeError(".google.api.HttpRule.additionalBindings: array expected");message.additionalBindings=[];for(var i=0;i<object.additionalBindings.length;++i){if(typeof object.additionalBindings[i]!=="object")throw TypeError(".google.api.HttpRule.additionalBindings: object expected");message.additionalBindings[i]=$root.google.api.HttpRule.fromObject(object.additionalBindings[i],long+1)}}return message};HttpRule.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.additionalBindings=[];if(options.defaults){object.selector="";object.body="";object.responseBody=""}if(message.selector!=null&&message.hasOwnProperty("selector"))object.selector=message.selector;if(message.get!=null&&message.hasOwnProperty("get")){object.get=message.get;if(options.oneofs)object.pattern="get"}if(message.put!=null&&message.hasOwnProperty("put")){object.put=message.put;if(options.oneofs)object.pattern="put"}if(message.post!=null&&message.hasOwnProperty("post")){object.post=message.post;if(options.oneofs)object.pattern="post"}if(message["delete"]!=null&&message.hasOwnProperty("delete")){object["delete"]=message["delete"];if(options.oneofs)object.pattern="delete"}if(message.patch!=null&&message.hasOwnProperty("patch")){object.patch=message.patch;if(options.oneofs)object.pattern="patch"}if(message.body!=null&&message.hasOwnProperty("body"))object.body=message.body;if(message.custom!=null&&message.hasOwnProperty("custom")){object.custom=$root.google.api.CustomHttpPattern.toObject(message.custom,options);if(options.oneofs)object.pattern="custom"}if(message.additionalBindings&&message.additionalBindings.length){object.additionalBindings=[];for(var j=0;j<message.additionalBindings.length;++j)object.additionalBindings[j]=$root.google.api.HttpRule.toObject(message.additionalBindings[j],options)}if(message.responseBody!=null&&message.hasOwnProperty("responseBody"))object.responseBody=message.responseBody;return object};HttpRule.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};HttpRule.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.HttpRule"};return HttpRule}();api.CustomHttpPattern=function(){function CustomHttpPattern(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}CustomHttpPattern.prototype.kind="";CustomHttpPattern.prototype.path="";CustomHttpPattern.create=function create(properties){return new CustomHttpPattern(properties)};CustomHttpPattern.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.kind!=null&&Object.hasOwnProperty.call(message,"kind"))writer.uint32(10).string(message.kind);if(message.path!=null&&Object.hasOwnProperty.call(message,"path"))writer.uint32(18).string(message.path);return writer};CustomHttpPattern.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};CustomHttpPattern.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.CustomHttpPattern;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.kind=reader.string();break}case 2:{message.path=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};CustomHttpPattern.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CustomHttpPattern.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.kind!=null&&message.hasOwnProperty("kind"))if(!$util.isString(message.kind))return"kind: string expected";if(message.path!=null&&message.hasOwnProperty("path"))if(!$util.isString(message.path))return"path: string expected";return null};CustomHttpPattern.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.CustomHttpPattern)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.CustomHttpPattern;if(object.kind!=null)message.kind=String(object.kind);if(object.path!=null)message.path=String(object.path);return message};CustomHttpPattern.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.kind="";object.path=""}if(message.kind!=null&&message.hasOwnProperty("kind"))object.kind=message.kind;if(message.path!=null&&message.hasOwnProperty("path"))object.path=message.path;return object};CustomHttpPattern.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CustomHttpPattern.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.CustomHttpPattern"};return CustomHttpPattern}();api.CommonLanguageSettings=function(){function CommonLanguageSettings(properties){this.destinations=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}CommonLanguageSettings.prototype.referenceDocsUri="";CommonLanguageSettings.prototype.destinations=$util.emptyArray;CommonLanguageSettings.prototype.selectiveGapicGeneration=null;CommonLanguageSettings.create=function create(properties){return new CommonLanguageSettings(properties)};CommonLanguageSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.referenceDocsUri!=null&&Object.hasOwnProperty.call(message,"referenceDocsUri"))writer.uint32(10).string(message.referenceDocsUri);if(message.destinations!=null&&message.destinations.length){writer.uint32(18).fork();for(var i=0;i<message.destinations.length;++i)writer.int32(message.destinations[i]);writer.ldelim()}if(message.selectiveGapicGeneration!=null&&Object.hasOwnProperty.call(message,"selectiveGapicGeneration"))$root.google.api.SelectiveGapicGeneration.encode(message.selectiveGapicGeneration,writer.uint32(26).fork()).ldelim();return writer};CommonLanguageSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};CommonLanguageSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.CommonLanguageSettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.referenceDocsUri=reader.string();break}case 2:{if(!(message.destinations&&message.destinations.length))message.destinations=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.destinations.push(reader.int32())}else message.destinations.push(reader.int32());break}case 3:{message.selectiveGapicGeneration=$root.google.api.SelectiveGapicGeneration.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CommonLanguageSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CommonLanguageSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.referenceDocsUri!=null&&message.hasOwnProperty("referenceDocsUri"))if(!$util.isString(message.referenceDocsUri))return"referenceDocsUri: string expected";if(message.destinations!=null&&message.hasOwnProperty("destinations")){if(!Array.isArray(message.destinations))return"destinations: array expected";for(var i=0;i<message.destinations.length;++i)switch(message.destinations[i]){default:return"destinations: enum value[] expected";case 0:case 10:case 20:break}}if(message.selectiveGapicGeneration!=null&&message.hasOwnProperty("selectiveGapicGeneration")){var error=$root.google.api.SelectiveGapicGeneration.verify(message.selectiveGapicGeneration,long+1);if(error)return"selectiveGapicGeneration."+error}return null};CommonLanguageSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.CommonLanguageSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.CommonLanguageSettings;if(object.referenceDocsUri!=null)message.referenceDocsUri=String(object.referenceDocsUri);if(object.destinations){if(!Array.isArray(object.destinations))throw TypeError(".google.api.CommonLanguageSettings.destinations: array expected");message.destinations=[];for(var i=0;i<object.destinations.length;++i)switch(object.destinations[i]){default:if(typeof object.destinations[i]==="number"){message.destinations[i]=object.destinations[i];break}case"CLIENT_LIBRARY_DESTINATION_UNSPECIFIED":case 0:message.destinations[i]=0;break;case"GITHUB":case 10:message.destinations[i]=10;break;case"PACKAGE_MANAGER":case 20:message.destinations[i]=20;break}}if(object.selectiveGapicGeneration!=null){if(typeof object.selectiveGapicGeneration!=="object")throw TypeError(".google.api.CommonLanguageSettings.selectiveGapicGeneration: object expected");message.selectiveGapicGeneration=$root.google.api.SelectiveGapicGeneration.fromObject(object.selectiveGapicGeneration,long+1)}return message};CommonLanguageSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.destinations=[];if(options.defaults){object.referenceDocsUri="";object.selectiveGapicGeneration=null}if(message.referenceDocsUri!=null&&message.hasOwnProperty("referenceDocsUri"))object.referenceDocsUri=message.referenceDocsUri;if(message.destinations&&message.destinations.length){object.destinations=[];for(var j=0;j<message.destinations.length;++j)object.destinations[j]=options.enums===String?$root.google.api.ClientLibraryDestination[message.destinations[j]]===undefined?message.destinations[j]:$root.google.api.ClientLibraryDestination[message.destinations[j]]:message.destinations[j]}if(message.selectiveGapicGeneration!=null&&message.hasOwnProperty("selectiveGapicGeneration"))object.selectiveGapicGeneration=$root.google.api.SelectiveGapicGeneration.toObject(message.selectiveGapicGeneration,options);return object};CommonLanguageSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CommonLanguageSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.CommonLanguageSettings"};return CommonLanguageSettings}();api.ClientLibrarySettings=function(){function ClientLibrarySettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ClientLibrarySettings.prototype.version="";ClientLibrarySettings.prototype.launchStage=0;ClientLibrarySettings.prototype.restNumericEnums=false;ClientLibrarySettings.prototype.javaSettings=null;ClientLibrarySettings.prototype.cppSettings=null;ClientLibrarySettings.prototype.phpSettings=null;ClientLibrarySettings.prototype.pythonSettings=null;ClientLibrarySettings.prototype.nodeSettings=null;ClientLibrarySettings.prototype.dotnetSettings=null;ClientLibrarySettings.prototype.rubySettings=null;ClientLibrarySettings.prototype.goSettings=null;ClientLibrarySettings.create=function create(properties){return new ClientLibrarySettings(properties)};ClientLibrarySettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.version!=null&&Object.hasOwnProperty.call(message,"version"))writer.uint32(10).string(message.version);if(message.launchStage!=null&&Object.hasOwnProperty.call(message,"launchStage"))writer.uint32(16).int32(message.launchStage);if(message.restNumericEnums!=null&&Object.hasOwnProperty.call(message,"restNumericEnums"))writer.uint32(24).bool(message.restNumericEnums);if(message.javaSettings!=null&&Object.hasOwnProperty.call(message,"javaSettings"))$root.google.api.JavaSettings.encode(message.javaSettings,writer.uint32(170).fork()).ldelim();if(message.cppSettings!=null&&Object.hasOwnProperty.call(message,"cppSettings"))$root.google.api.CppSettings.encode(message.cppSettings,writer.uint32(178).fork()).ldelim();if(message.phpSettings!=null&&Object.hasOwnProperty.call(message,"phpSettings"))$root.google.api.PhpSettings.encode(message.phpSettings,writer.uint32(186).fork()).ldelim();if(message.pythonSettings!=null&&Object.hasOwnProperty.call(message,"pythonSettings"))$root.google.api.PythonSettings.encode(message.pythonSettings,writer.uint32(194).fork()).ldelim();if(message.nodeSettings!=null&&Object.hasOwnProperty.call(message,"nodeSettings"))$root.google.api.NodeSettings.encode(message.nodeSettings,writer.uint32(202).fork()).ldelim();if(message.dotnetSettings!=null&&Object.hasOwnProperty.call(message,"dotnetSettings"))$root.google.api.DotnetSettings.encode(message.dotnetSettings,writer.uint32(210).fork()).ldelim();if(message.rubySettings!=null&&Object.hasOwnProperty.call(message,"rubySettings"))$root.google.api.RubySettings.encode(message.rubySettings,writer.uint32(218).fork()).ldelim();if(message.goSettings!=null&&Object.hasOwnProperty.call(message,"goSettings"))$root.google.api.GoSettings.encode(message.goSettings,writer.uint32(226).fork()).ldelim();return writer};ClientLibrarySettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ClientLibrarySettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.ClientLibrarySettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.version=reader.string();break}case 2:{message.launchStage=reader.int32();break}case 3:{message.restNumericEnums=reader.bool();break}case 21:{message.javaSettings=$root.google.api.JavaSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 22:{message.cppSettings=$root.google.api.CppSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 23:{message.phpSettings=$root.google.api.PhpSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 24:{message.pythonSettings=$root.google.api.PythonSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 25:{message.nodeSettings=$root.google.api.NodeSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 26:{message.dotnetSettings=$root.google.api.DotnetSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 27:{message.rubySettings=$root.google.api.RubySettings.decode(reader,reader.uint32(),undefined,long+1);break}case 28:{message.goSettings=$root.google.api.GoSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ClientLibrarySettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ClientLibrarySettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.version!=null&&message.hasOwnProperty("version"))if(!$util.isString(message.version))return"version: string expected";if(message.launchStage!=null&&message.hasOwnProperty("launchStage"))switch(message.launchStage){default:return"launchStage: enum value expected";case 0:case 6:case 7:case 1:case 2:case 3:case 4:case 5:break}if(message.restNumericEnums!=null&&message.hasOwnProperty("restNumericEnums"))if(typeof message.restNumericEnums!=="boolean")return"restNumericEnums: boolean expected";if(message.javaSettings!=null&&message.hasOwnProperty("javaSettings")){var error=$root.google.api.JavaSettings.verify(message.javaSettings,long+1);if(error)return"javaSettings."+error}if(message.cppSettings!=null&&message.hasOwnProperty("cppSettings")){var error=$root.google.api.CppSettings.verify(message.cppSettings,long+1);if(error)return"cppSettings."+error}if(message.phpSettings!=null&&message.hasOwnProperty("phpSettings")){var error=$root.google.api.PhpSettings.verify(message.phpSettings,long+1);if(error)return"phpSettings."+error}if(message.pythonSettings!=null&&message.hasOwnProperty("pythonSettings")){var error=$root.google.api.PythonSettings.verify(message.pythonSettings,long+1);if(error)return"pythonSettings."+error}if(message.nodeSettings!=null&&message.hasOwnProperty("nodeSettings")){var error=$root.google.api.NodeSettings.verify(message.nodeSettings,long+1);if(error)return"nodeSettings."+error}if(message.dotnetSettings!=null&&message.hasOwnProperty("dotnetSettings")){var error=$root.google.api.DotnetSettings.verify(message.dotnetSettings,long+1);if(error)return"dotnetSettings."+error}if(message.rubySettings!=null&&message.hasOwnProperty("rubySettings")){var error=$root.google.api.RubySettings.verify(message.rubySettings,long+1);if(error)return"rubySettings."+error}if(message.goSettings!=null&&message.hasOwnProperty("goSettings")){var error=$root.google.api.GoSettings.verify(message.goSettings,long+1);if(error)return"goSettings."+error}return null};ClientLibrarySettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.ClientLibrarySettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.ClientLibrarySettings;if(object.version!=null)message.version=String(object.version);switch(object.launchStage){default:if(typeof object.launchStage==="number"){message.launchStage=object.launchStage;break}break;case"LAUNCH_STAGE_UNSPECIFIED":case 0:message.launchStage=0;break;case"UNIMPLEMENTED":case 6:message.launchStage=6;break;case"PRELAUNCH":case 7:message.launchStage=7;break;case"EARLY_ACCESS":case 1:message.launchStage=1;break;case"ALPHA":case 2:message.launchStage=2;break;case"BETA":case 3:message.launchStage=3;break;case"GA":case 4:message.launchStage=4;break;case"DEPRECATED":case 5:message.launchStage=5;break}if(object.restNumericEnums!=null)message.restNumericEnums=Boolean(object.restNumericEnums);if(object.javaSettings!=null){if(typeof object.javaSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.javaSettings: object expected");message.javaSettings=$root.google.api.JavaSettings.fromObject(object.javaSettings,long+1)}if(object.cppSettings!=null){if(typeof object.cppSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.cppSettings: object expected");message.cppSettings=$root.google.api.CppSettings.fromObject(object.cppSettings,long+1)}if(object.phpSettings!=null){if(typeof object.phpSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.phpSettings: object expected");message.phpSettings=$root.google.api.PhpSettings.fromObject(object.phpSettings,long+1)}if(object.pythonSettings!=null){if(typeof object.pythonSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.pythonSettings: object expected");message.pythonSettings=$root.google.api.PythonSettings.fromObject(object.pythonSettings,long+1)}if(object.nodeSettings!=null){if(typeof object.nodeSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.nodeSettings: object expected");message.nodeSettings=$root.google.api.NodeSettings.fromObject(object.nodeSettings,long+1)}if(object.dotnetSettings!=null){if(typeof object.dotnetSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.dotnetSettings: object expected");message.dotnetSettings=$root.google.api.DotnetSettings.fromObject(object.dotnetSettings,long+1)}if(object.rubySettings!=null){if(typeof object.rubySettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.rubySettings: object expected");message.rubySettings=$root.google.api.RubySettings.fromObject(object.rubySettings,long+1)}if(object.goSettings!=null){if(typeof object.goSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.goSettings: object expected");message.goSettings=$root.google.api.GoSettings.fromObject(object.goSettings,long+1)}return message};ClientLibrarySettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.version="";object.launchStage=options.enums===String?"LAUNCH_STAGE_UNSPECIFIED":0;object.restNumericEnums=false;object.javaSettings=null;object.cppSettings=null;object.phpSettings=null;object.pythonSettings=null;object.nodeSettings=null;object.dotnetSettings=null;object.rubySettings=null;object.goSettings=null}if(message.version!=null&&message.hasOwnProperty("version"))object.version=message.version;if(message.launchStage!=null&&message.hasOwnProperty("launchStage"))object.launchStage=options.enums===String?$root.google.api.LaunchStage[message.launchStage]===undefined?message.launchStage:$root.google.api.LaunchStage[message.launchStage]:message.launchStage;if(message.restNumericEnums!=null&&message.hasOwnProperty("restNumericEnums"))object.restNumericEnums=message.restNumericEnums;if(message.javaSettings!=null&&message.hasOwnProperty("javaSettings"))object.javaSettings=$root.google.api.JavaSettings.toObject(message.javaSettings,options);if(message.cppSettings!=null&&message.hasOwnProperty("cppSettings"))object.cppSettings=$root.google.api.CppSettings.toObject(message.cppSettings,options);if(message.phpSettings!=null&&message.hasOwnProperty("phpSettings"))object.phpSettings=$root.google.api.PhpSettings.toObject(message.phpSettings,options);if(message.pythonSettings!=null&&message.hasOwnProperty("pythonSettings"))object.pythonSettings=$root.google.api.PythonSettings.toObject(message.pythonSettings,options);if(message.nodeSettings!=null&&message.hasOwnProperty("nodeSettings"))object.nodeSettings=$root.google.api.NodeSettings.toObject(message.nodeSettings,options);if(message.dotnetSettings!=null&&message.hasOwnProperty("dotnetSettings"))object.dotnetSettings=$root.google.api.DotnetSettings.toObject(message.dotnetSettings,options);if(message.rubySettings!=null&&message.hasOwnProperty("rubySettings"))object.rubySettings=$root.google.api.RubySettings.toObject(message.rubySettings,options);if(message.goSettings!=null&&message.hasOwnProperty("goSettings"))object.goSettings=$root.google.api.GoSettings.toObject(message.goSettings,options);return object};ClientLibrarySettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ClientLibrarySettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.ClientLibrarySettings"};return ClientLibrarySettings}();api.Publishing=function(){function Publishing(properties){this.methodSettings=[];this.codeownerGithubTeams=[];this.librarySettings=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Publishing.prototype.methodSettings=$util.emptyArray;Publishing.prototype.newIssueUri="";Publishing.prototype.documentationUri="";Publishing.prototype.apiShortName="";Publishing.prototype.githubLabel="";Publishing.prototype.codeownerGithubTeams=$util.emptyArray;Publishing.prototype.docTagPrefix="";Publishing.prototype.organization=0;Publishing.prototype.librarySettings=$util.emptyArray;Publishing.prototype.protoReferenceDocumentationUri="";Publishing.prototype.restReferenceDocumentationUri="";Publishing.create=function create(properties){return new Publishing(properties)};Publishing.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.methodSettings!=null&&message.methodSettings.length)for(var i=0;i<message.methodSettings.length;++i)$root.google.api.MethodSettings.encode(message.methodSettings[i],writer.uint32(18).fork()).ldelim();if(message.newIssueUri!=null&&Object.hasOwnProperty.call(message,"newIssueUri"))writer.uint32(810).string(message.newIssueUri);if(message.documentationUri!=null&&Object.hasOwnProperty.call(message,"documentationUri"))writer.uint32(818).string(message.documentationUri);if(message.apiShortName!=null&&Object.hasOwnProperty.call(message,"apiShortName"))writer.uint32(826).string(message.apiShortName);if(message.githubLabel!=null&&Object.hasOwnProperty.call(message,"githubLabel"))writer.uint32(834).string(message.githubLabel);if(message.codeownerGithubTeams!=null&&message.codeownerGithubTeams.length)for(var i=0;i<message.codeownerGithubTeams.length;++i)writer.uint32(842).string(message.codeownerGithubTeams[i]);if(message.docTagPrefix!=null&&Object.hasOwnProperty.call(message,"docTagPrefix"))writer.uint32(850).string(message.docTagPrefix);if(message.organization!=null&&Object.hasOwnProperty.call(message,"organization"))writer.uint32(856).int32(message.organization);if(message.librarySettings!=null&&message.librarySettings.length)for(var i=0;i<message.librarySettings.length;++i)$root.google.api.ClientLibrarySettings.encode(message.librarySettings[i],writer.uint32(874).fork()).ldelim();if(message.protoReferenceDocumentationUri!=null&&Object.hasOwnProperty.call(message,"protoReferenceDocumentationUri"))writer.uint32(882).string(message.protoReferenceDocumentationUri);if(message.restReferenceDocumentationUri!=null&&Object.hasOwnProperty.call(message,"restReferenceDocumentationUri"))writer.uint32(890).string(message.restReferenceDocumentationUri);return writer};Publishing.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Publishing.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.Publishing;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 2:{if(!(message.methodSettings&&message.methodSettings.length))message.methodSettings=[];message.methodSettings.push($root.google.api.MethodSettings.decode(reader,reader.uint32(),undefined,long+1));break}case 101:{message.newIssueUri=reader.string();break}case 102:{message.documentationUri=reader.string();break}case 103:{message.apiShortName=reader.string();break}case 104:{message.githubLabel=reader.string();break}case 105:{if(!(message.codeownerGithubTeams&&message.codeownerGithubTeams.length))message.codeownerGithubTeams=[];message.codeownerGithubTeams.push(reader.string());break}case 106:{message.docTagPrefix=reader.string();break}case 107:{message.organization=reader.int32();break}case 109:{if(!(message.librarySettings&&message.librarySettings.length))message.librarySettings=[];message.librarySettings.push($root.google.api.ClientLibrarySettings.decode(reader,reader.uint32(),undefined,long+1));break}case 110:{message.protoReferenceDocumentationUri=reader.string();break}case 111:{message.restReferenceDocumentationUri=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};Publishing.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Publishing.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.methodSettings!=null&&message.hasOwnProperty("methodSettings")){if(!Array.isArray(message.methodSettings))return"methodSettings: array expected";for(var i=0;i<message.methodSettings.length;++i){var error=$root.google.api.MethodSettings.verify(message.methodSettings[i],long+1);if(error)return"methodSettings."+error}}if(message.newIssueUri!=null&&message.hasOwnProperty("newIssueUri"))if(!$util.isString(message.newIssueUri))return"newIssueUri: string expected";if(message.documentationUri!=null&&message.hasOwnProperty("documentationUri"))if(!$util.isString(message.documentationUri))return"documentationUri: string expected";if(message.apiShortName!=null&&message.hasOwnProperty("apiShortName"))if(!$util.isString(message.apiShortName))return"apiShortName: string expected";if(message.githubLabel!=null&&message.hasOwnProperty("githubLabel"))if(!$util.isString(message.githubLabel))return"githubLabel: string expected";if(message.codeownerGithubTeams!=null&&message.hasOwnProperty("codeownerGithubTeams")){if(!Array.isArray(message.codeownerGithubTeams))return"codeownerGithubTeams: array expected";for(var i=0;i<message.codeownerGithubTeams.length;++i)if(!$util.isString(message.codeownerGithubTeams[i]))return"codeownerGithubTeams: string[] expected"}if(message.docTagPrefix!=null&&message.hasOwnProperty("docTagPrefix"))if(!$util.isString(message.docTagPrefix))return"docTagPrefix: string expected";if(message.organization!=null&&message.hasOwnProperty("organization"))switch(message.organization){default:return"organization: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.librarySettings!=null&&message.hasOwnProperty("librarySettings")){if(!Array.isArray(message.librarySettings))return"librarySettings: array expected";for(var i=0;i<message.librarySettings.length;++i){var error=$root.google.api.ClientLibrarySettings.verify(message.librarySettings[i],long+1);if(error)return"librarySettings."+error}}if(message.protoReferenceDocumentationUri!=null&&message.hasOwnProperty("protoReferenceDocumentationUri"))if(!$util.isString(message.protoReferenceDocumentationUri))return"protoReferenceDocumentationUri: string expected";if(message.restReferenceDocumentationUri!=null&&message.hasOwnProperty("restReferenceDocumentationUri"))if(!$util.isString(message.restReferenceDocumentationUri))return"restReferenceDocumentationUri: string expected";return null};Publishing.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.Publishing)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.Publishing;if(object.methodSettings){if(!Array.isArray(object.methodSettings))throw TypeError(".google.api.Publishing.methodSettings: array expected");message.methodSettings=[];for(var i=0;i<object.methodSettings.length;++i){if(typeof object.methodSettings[i]!=="object")throw TypeError(".google.api.Publishing.methodSettings: object expected");message.methodSettings[i]=$root.google.api.MethodSettings.fromObject(object.methodSettings[i],long+1)}}if(object.newIssueUri!=null)message.newIssueUri=String(object.newIssueUri);if(object.documentationUri!=null)message.documentationUri=String(object.documentationUri);if(object.apiShortName!=null)message.apiShortName=String(object.apiShortName);if(object.githubLabel!=null)message.githubLabel=String(object.githubLabel);if(object.codeownerGithubTeams){if(!Array.isArray(object.codeownerGithubTeams))throw TypeError(".google.api.Publishing.codeownerGithubTeams: array expected");message.codeownerGithubTeams=[];for(var i=0;i<object.codeownerGithubTeams.length;++i)message.codeownerGithubTeams[i]=String(object.codeownerGithubTeams[i])}if(object.docTagPrefix!=null)message.docTagPrefix=String(object.docTagPrefix);switch(object.organization){default:if(typeof object.organization==="number"){message.organization=object.organization;break}break;case"CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED":case 0:message.organization=0;break;case"CLOUD":case 1:message.organization=1;break;case"ADS":case 2:message.organization=2;break;case"PHOTOS":case 3:message.organization=3;break;case"STREET_VIEW":case 4:message.organization=4;break;case"SHOPPING":case 5:message.organization=5;break;case"GEO":case 6:message.organization=6;break;case"GENERATIVE_AI":case 7:message.organization=7;break}if(object.librarySettings){if(!Array.isArray(object.librarySettings))throw TypeError(".google.api.Publishing.librarySettings: array expected");message.librarySettings=[];for(var i=0;i<object.librarySettings.length;++i){if(typeof object.librarySettings[i]!=="object")throw TypeError(".google.api.Publishing.librarySettings: object expected");message.librarySettings[i]=$root.google.api.ClientLibrarySettings.fromObject(object.librarySettings[i],long+1)}}if(object.protoReferenceDocumentationUri!=null)message.protoReferenceDocumentationUri=String(object.protoReferenceDocumentationUri);if(object.restReferenceDocumentationUri!=null)message.restReferenceDocumentationUri=String(object.restReferenceDocumentationUri);return message};Publishing.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.methodSettings=[];object.codeownerGithubTeams=[];object.librarySettings=[]}if(options.defaults){object.newIssueUri="";object.documentationUri="";object.apiShortName="";object.githubLabel="";object.docTagPrefix="";object.organization=options.enums===String?"CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED":0;object.protoReferenceDocumentationUri="";object.restReferenceDocumentationUri=""}if(message.methodSettings&&message.methodSettings.length){object.methodSettings=[];for(var j=0;j<message.methodSettings.length;++j)object.methodSettings[j]=$root.google.api.MethodSettings.toObject(message.methodSettings[j],options)}if(message.newIssueUri!=null&&message.hasOwnProperty("newIssueUri"))object.newIssueUri=message.newIssueUri;if(message.documentationUri!=null&&message.hasOwnProperty("documentationUri"))object.documentationUri=message.documentationUri;if(message.apiShortName!=null&&message.hasOwnProperty("apiShortName"))object.apiShortName=message.apiShortName;if(message.githubLabel!=null&&message.hasOwnProperty("githubLabel"))object.githubLabel=message.githubLabel;if(message.codeownerGithubTeams&&message.codeownerGithubTeams.length){object.codeownerGithubTeams=[];for(var j=0;j<message.codeownerGithubTeams.length;++j)object.codeownerGithubTeams[j]=message.codeownerGithubTeams[j]}if(message.docTagPrefix!=null&&message.hasOwnProperty("docTagPrefix"))object.docTagPrefix=message.docTagPrefix;if(message.organization!=null&&message.hasOwnProperty("organization"))object.organization=options.enums===String?$root.google.api.ClientLibraryOrganization[message.organization]===undefined?message.organization:$root.google.api.ClientLibraryOrganization[message.organization]:message.organization;if(message.librarySettings&&message.librarySettings.length){object.librarySettings=[];for(var j=0;j<message.librarySettings.length;++j)object.librarySettings[j]=$root.google.api.ClientLibrarySettings.toObject(message.librarySettings[j],options)}if(message.protoReferenceDocumentationUri!=null&&message.hasOwnProperty("protoReferenceDocumentationUri"))object.protoReferenceDocumentationUri=message.protoReferenceDocumentationUri;if(message.restReferenceDocumentationUri!=null&&message.hasOwnProperty("restReferenceDocumentationUri"))object.restReferenceDocumentationUri=message.restReferenceDocumentationUri;return object};Publishing.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Publishing.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.Publishing"};return Publishing}();api.JavaSettings=function(){function JavaSettings(properties){this.serviceClassNames={};if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}JavaSettings.prototype.libraryPackage="";JavaSettings.prototype.serviceClassNames=$util.emptyObject;JavaSettings.prototype.common=null;JavaSettings.create=function create(properties){return new JavaSettings(properties)};JavaSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.libraryPackage!=null&&Object.hasOwnProperty.call(message,"libraryPackage"))writer.uint32(10).string(message.libraryPackage);if(message.serviceClassNames!=null&&Object.hasOwnProperty.call(message,"serviceClassNames"))for(var keys=Object.keys(message.serviceClassNames),i=0;i<keys.length;++i)writer.uint32(18).fork().uint32(10).string(keys[i]).uint32(18).string(message.serviceClassNames[keys[i]]).ldelim();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(26).fork()).ldelim();return writer};JavaSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};JavaSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.JavaSettings,key,value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.libraryPackage=reader.string();break}case 2:{if(message.serviceClassNames===$util.emptyObject)message.serviceClassNames={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos<end2){var tag2=reader.uint32();switch(tag2>>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.serviceClassNames,key);message.serviceClassNames[key]=value;break}case 3:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};JavaSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};JavaSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.libraryPackage!=null&&message.hasOwnProperty("libraryPackage"))if(!$util.isString(message.libraryPackage))return"libraryPackage: string expected";if(message.serviceClassNames!=null&&message.hasOwnProperty("serviceClassNames")){if(!$util.isObject(message.serviceClassNames))return"serviceClassNames: object expected";var key=Object.keys(message.serviceClassNames);for(var i=0;i<key.length;++i)if(!$util.isString(message.serviceClassNames[key[i]]))return"serviceClassNames: string{k:string} expected"}if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};JavaSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.JavaSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.JavaSettings;if(object.libraryPackage!=null)message.libraryPackage=String(object.libraryPackage);if(object.serviceClassNames){if(typeof object.serviceClassNames!=="object")throw TypeError(".google.api.JavaSettings.serviceClassNames: object expected");message.serviceClassNames={};for(var keys=Object.keys(object.serviceClassNames),i=0;i<keys.length;++i){if(keys[i]==="__proto__")$util.makeProp(message.serviceClassNames,keys[i]);message.serviceClassNames[keys[i]]=String(object.serviceClassNames[keys[i]])}}if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.JavaSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};JavaSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.objects||options.defaults)object.serviceClassNames={};if(options.defaults){object.libraryPackage="";object.common=null}if(message.libraryPackage!=null&&message.hasOwnProperty("libraryPackage"))object.libraryPackage=message.libraryPackage;var keys2;if(message.serviceClassNames&&(keys2=Object.keys(message.serviceClassNames)).length){object.serviceClassNames={};for(var j=0;j<keys2.length;++j){if(keys2[j]==="__proto__")$util.makeProp(object.serviceClassNames,keys2[j]);object.serviceClassNames[keys2[j]]=message.serviceClassNames[keys2[j]]}}if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};JavaSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};JavaSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.JavaSettings"};return JavaSettings}();api.CppSettings=function(){function CppSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}CppSettings.prototype.common=null;CppSettings.create=function create(properties){return new CppSettings(properties)};CppSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();return writer};CppSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};CppSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.CppSettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CppSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CppSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};CppSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.CppSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.CppSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.CppSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};CppSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};CppSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CppSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.CppSettings"};return CppSettings}();api.PhpSettings=function(){function PhpSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}PhpSettings.prototype.common=null;PhpSettings.prototype.libraryPackage="";PhpSettings.create=function create(properties){return new PhpSettings(properties)};PhpSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();if(message.libraryPackage!=null&&Object.hasOwnProperty.call(message,"libraryPackage"))writer.uint32(18).string(message.libraryPackage);return writer};PhpSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};PhpSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.PhpSettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.libraryPackage=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};PhpSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PhpSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.libraryPackage!=null&&message.hasOwnProperty("libraryPackage"))if(!$util.isString(message.libraryPackage))return"libraryPackage: string expected";return null};PhpSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.PhpSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.PhpSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.PhpSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.libraryPackage!=null)message.libraryPackage=String(object.libraryPackage);return message};PhpSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.common=null;object.libraryPackage=""}if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);if(message.libraryPackage!=null&&message.hasOwnProperty("libraryPackage"))object.libraryPackage=message.libraryPackage;return object};PhpSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PhpSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.PhpSettings"};return PhpSettings}();api.PythonSettings=function(){function PythonSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}PythonSettings.prototype.common=null;PythonSettings.prototype.experimentalFeatures=null;PythonSettings.create=function create(properties){return new PythonSettings(properties)};PythonSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();if(message.experimentalFeatures!=null&&Object.hasOwnProperty.call(message,"experimentalFeatures"))$root.google.api.PythonSettings.ExperimentalFeatures.encode(message.experimentalFeatures,writer.uint32(18).fork()).ldelim();return writer};PythonSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};PythonSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.PythonSettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.experimentalFeatures=$root.google.api.PythonSettings.ExperimentalFeatures.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};PythonSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PythonSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.experimentalFeatures!=null&&message.hasOwnProperty("experimentalFeatures")){var error=$root.google.api.PythonSettings.ExperimentalFeatures.verify(message.experimentalFeatures,long+1);if(error)return"experimentalFeatures."+error}return null};PythonSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.PythonSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.PythonSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.PythonSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.experimentalFeatures!=null){if(typeof object.experimentalFeatures!=="object")throw TypeError(".google.api.PythonSettings.experimentalFeatures: object expected");message.experimentalFeatures=$root.google.api.PythonSettings.ExperimentalFeatures.fromObject(object.experimentalFeatures,long+1)}return message};PythonSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.common=null;object.experimentalFeatures=null}if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);if(message.experimentalFeatures!=null&&message.hasOwnProperty("experimentalFeatures"))object.experimentalFeatures=$root.google.api.PythonSettings.ExperimentalFeatures.toObject(message.experimentalFeatures,options);return object};PythonSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PythonSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.PythonSettings"};PythonSettings.ExperimentalFeatures=function(){function ExperimentalFeatures(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ExperimentalFeatures.prototype.restAsyncIoEnabled=false;ExperimentalFeatures.prototype.protobufPythonicTypesEnabled=false;ExperimentalFeatures.prototype.unversionedPackageDisabled=false;ExperimentalFeatures.create=function create(properties){return new ExperimentalFeatures(properties)};ExperimentalFeatures.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.restAsyncIoEnabled!=null&&Object.hasOwnProperty.call(message,"restAsyncIoEnabled"))writer.uint32(8).bool(message.restAsyncIoEnabled);if(message.protobufPythonicTypesEnabled!=null&&Object.hasOwnProperty.call(message,"protobufPythonicTypesEnabled"))writer.uint32(16).bool(message.protobufPythonicTypesEnabled);if(message.unversionedPackageDisabled!=null&&Object.hasOwnProperty.call(message,"unversionedPackageDisabled"))writer.uint32(24).bool(message.unversionedPackageDisabled);return writer};ExperimentalFeatures.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ExperimentalFeatures.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.PythonSettings.ExperimentalFeatures;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.restAsyncIoEnabled=reader.bool();break}case 2:{message.protobufPythonicTypesEnabled=reader.bool();break}case 3:{message.unversionedPackageDisabled=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ExperimentalFeatures.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExperimentalFeatures.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.restAsyncIoEnabled!=null&&message.hasOwnProperty("restAsyncIoEnabled"))if(typeof message.restAsyncIoEnabled!=="boolean")return"restAsyncIoEnabled: boolean expected";if(message.protobufPythonicTypesEnabled!=null&&message.hasOwnProperty("protobufPythonicTypesEnabled"))if(typeof message.protobufPythonicTypesEnabled!=="boolean")return"protobufPythonicTypesEnabled: boolean expected";if(message.unversionedPackageDisabled!=null&&message.hasOwnProperty("unversionedPackageDisabled"))if(typeof message.unversionedPackageDisabled!=="boolean")return"unversionedPackageDisabled: boolean expected";return null};ExperimentalFeatures.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.PythonSettings.ExperimentalFeatures)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.PythonSettings.ExperimentalFeatures;if(object.restAsyncIoEnabled!=null)message.restAsyncIoEnabled=Boolean(object.restAsyncIoEnabled);if(object.protobufPythonicTypesEnabled!=null)message.protobufPythonicTypesEnabled=Boolean(object.protobufPythonicTypesEnabled);if(object.unversionedPackageDisabled!=null)message.unversionedPackageDisabled=Boolean(object.unversionedPackageDisabled);return message};ExperimentalFeatures.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.restAsyncIoEnabled=false;object.protobufPythonicTypesEnabled=false;object.unversionedPackageDisabled=false}if(message.restAsyncIoEnabled!=null&&message.hasOwnProperty("restAsyncIoEnabled"))object.restAsyncIoEnabled=message.restAsyncIoEnabled;if(message.protobufPythonicTypesEnabled!=null&&message.hasOwnProperty("protobufPythonicTypesEnabled"))object.protobufPythonicTypesEnabled=message.protobufPythonicTypesEnabled;if(message.unversionedPackageDisabled!=null&&message.hasOwnProperty("unversionedPackageDisabled"))object.unversionedPackageDisabled=message.unversionedPackageDisabled;return object};ExperimentalFeatures.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExperimentalFeatures.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.PythonSettings.ExperimentalFeatures"};return ExperimentalFeatures}();return PythonSettings}();api.NodeSettings=function(){function NodeSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}NodeSettings.prototype.common=null;NodeSettings.create=function create(properties){return new NodeSettings(properties)};NodeSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();return writer};NodeSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};NodeSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.NodeSettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};NodeSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};NodeSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};NodeSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.NodeSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.NodeSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.NodeSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};NodeSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};NodeSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};NodeSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.NodeSettings"};return NodeSettings}();api.DotnetSettings=function(){function DotnetSettings(properties){this.renamedServices={};this.renamedResources={};this.ignoredResources=[];this.forcedNamespaceAliases=[];this.handwrittenSignatures=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}DotnetSettings.prototype.common=null;DotnetSettings.prototype.renamedServices=$util.emptyObject;DotnetSettings.prototype.renamedResources=$util.emptyObject;DotnetSettings.prototype.ignoredResources=$util.emptyArray;DotnetSettings.prototype.forcedNamespaceAliases=$util.emptyArray;DotnetSettings.prototype.handwrittenSignatures=$util.emptyArray;DotnetSettings.create=function create(properties){return new DotnetSettings(properties)};DotnetSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();if(message.renamedServices!=null&&Object.hasOwnProperty.call(message,"renamedServices"))for(var keys=Object.keys(message.renamedServices),i=0;i<keys.length;++i)writer.uint32(18).fork().uint32(10).string(keys[i]).uint32(18).string(message.renamedServices[keys[i]]).ldelim();if(message.renamedResources!=null&&Object.hasOwnProperty.call(message,"renamedResources"))for(var keys=Object.keys(message.renamedResources),i=0;i<keys.length;++i)writer.uint32(26).fork().uint32(10).string(keys[i]).uint32(18).string(message.renamedResources[keys[i]]).ldelim();if(message.ignoredResources!=null&&message.ignoredResources.length)for(var i=0;i<message.ignoredResources.length;++i)writer.uint32(34).string(message.ignoredResources[i]);if(message.forcedNamespaceAliases!=null&&message.forcedNamespaceAliases.length)for(var i=0;i<message.forcedNamespaceAliases.length;++i)writer.uint32(42).string(message.forcedNamespaceAliases[i]);if(message.handwrittenSignatures!=null&&message.handwrittenSignatures.length)for(var i=0;i<message.handwrittenSignatures.length;++i)writer.uint32(50).string(message.handwrittenSignatures[i]);return writer};DotnetSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};DotnetSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.DotnetSettings,key,value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(message.renamedServices===$util.emptyObject)message.renamedServices={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos<end2){var tag2=reader.uint32();switch(tag2>>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.renamedServices,key);message.renamedServices[key]=value;break}case 3:{if(message.renamedResources===$util.emptyObject)message.renamedResources={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos<end2){var tag2=reader.uint32();switch(tag2>>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.renamedResources,key);message.renamedResources[key]=value;break}case 4:{if(!(message.ignoredResources&&message.ignoredResources.length))message.ignoredResources=[];message.ignoredResources.push(reader.string());break}case 5:{if(!(message.forcedNamespaceAliases&&message.forcedNamespaceAliases.length))message.forcedNamespaceAliases=[];message.forcedNamespaceAliases.push(reader.string());break}case 6:{if(!(message.handwrittenSignatures&&message.handwrittenSignatures.length))message.handwrittenSignatures=[];message.handwrittenSignatures.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};DotnetSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DotnetSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.renamedServices!=null&&message.hasOwnProperty("renamedServices")){if(!$util.isObject(message.renamedServices))return"renamedServices: object expected";var key=Object.keys(message.renamedServices);for(var i=0;i<key.length;++i)if(!$util.isString(message.renamedServices[key[i]]))return"renamedServices: string{k:string} expected"}if(message.renamedResources!=null&&message.hasOwnProperty("renamedResources")){if(!$util.isObject(message.renamedResources))return"renamedResources: object expected";var key=Object.keys(message.renamedResources);for(var i=0;i<key.length;++i)if(!$util.isString(message.renamedResources[key[i]]))return"renamedResources: string{k:string} expected"}if(message.ignoredResources!=null&&message.hasOwnProperty("ignoredResources")){if(!Array.isArray(message.ignoredResources))return"ignoredResources: array expected";for(var i=0;i<message.ignoredResources.length;++i)if(!$util.isString(message.ignoredResources[i]))return"ignoredResources: string[] expected"}if(message.forcedNamespaceAliases!=null&&message.hasOwnProperty("forcedNamespaceAliases")){if(!Array.isArray(message.forcedNamespaceAliases))return"forcedNamespaceAliases: array expected";for(var i=0;i<message.forcedNamespaceAliases.length;++i)if(!$util.isString(message.forcedNamespaceAliases[i]))return"forcedNamespaceAliases: string[] expected"}if(message.handwrittenSignatures!=null&&message.hasOwnProperty("handwrittenSignatures")){if(!Array.isArray(message.handwrittenSignatures))return"handwrittenSignatures: array expected";for(var i=0;i<message.handwrittenSignatures.length;++i)if(!$util.isString(message.handwrittenSignatures[i]))return"handwrittenSignatures: string[] expected"}return null};DotnetSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.DotnetSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.DotnetSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.DotnetSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.renamedServices){if(typeof object.renamedServices!=="object")throw TypeError(".google.api.DotnetSettings.renamedServices: object expected");message.renamedServices={};for(var keys=Object.keys(object.renamedServices),i=0;i<keys.length;++i){if(keys[i]==="__proto__")$util.makeProp(message.renamedServices,keys[i]);message.renamedServices[keys[i]]=String(object.renamedServices[keys[i]])}}if(object.renamedResources){if(typeof object.renamedResources!=="object")throw TypeError(".google.api.DotnetSettings.renamedResources: object expected");message.renamedResources={};for(var keys=Object.keys(object.renamedResources),i=0;i<keys.length;++i){if(keys[i]==="__proto__")$util.makeProp(message.renamedResources,keys[i]);message.renamedResources[keys[i]]=String(object.renamedResources[keys[i]])}}if(object.ignoredResources){if(!Array.isArray(object.ignoredResources))throw TypeError(".google.api.DotnetSettings.ignoredResources: array expected");message.ignoredResources=[];for(var i=0;i<object.ignoredResources.length;++i)message.ignoredResources[i]=String(object.ignoredResources[i])}if(object.forcedNamespaceAliases){if(!Array.isArray(object.forcedNamespaceAliases))throw TypeError(".google.api.DotnetSettings.forcedNamespaceAliases: array expected");message.forcedNamespaceAliases=[];for(var i=0;i<object.forcedNamespaceAliases.length;++i)message.forcedNamespaceAliases[i]=String(object.forcedNamespaceAliases[i])}if(object.handwrittenSignatures){if(!Array.isArray(object.handwrittenSignatures))throw TypeError(".google.api.DotnetSettings.handwrittenSignatures: array expected");message.handwrittenSignatures=[];for(var i=0;i<object.handwrittenSignatures.length;++i)message.handwrittenSignatures[i]=String(object.handwrittenSignatures[i])}return message};DotnetSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.ignoredResources=[];object.forcedNamespaceAliases=[];object.handwrittenSignatures=[]}if(options.objects||options.defaults){object.renamedServices={};object.renamedResources={}}if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);var keys2;if(message.renamedServices&&(keys2=Object.keys(message.renamedServices)).length){object.renamedServices={};for(var j=0;j<keys2.length;++j){if(keys2[j]==="__proto__")$util.makeProp(object.renamedServices,keys2[j]);object.renamedServices[keys2[j]]=message.renamedServices[keys2[j]]}}if(message.renamedResources&&(keys2=Object.keys(message.renamedResources)).length){object.renamedResources={};for(var j=0;j<keys2.length;++j){if(keys2[j]==="__proto__")$util.makeProp(object.renamedResources,keys2[j]);object.renamedResources[keys2[j]]=message.renamedResources[keys2[j]]}}if(message.ignoredResources&&message.ignoredResources.length){object.ignoredResources=[];for(var j=0;j<message.ignoredResources.length;++j)object.ignoredResources[j]=message.ignoredResources[j]}if(message.forcedNamespaceAliases&&message.forcedNamespaceAliases.length){object.forcedNamespaceAliases=[];for(var j=0;j<message.forcedNamespaceAliases.length;++j)object.forcedNamespaceAliases[j]=message.forcedNamespaceAliases[j]}if(message.handwrittenSignatures&&message.handwrittenSignatures.length){object.handwrittenSignatures=[];for(var j=0;j<message.handwrittenSignatures.length;++j)object.handwrittenSignatures[j]=message.handwrittenSignatures[j]}return object};DotnetSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DotnetSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.DotnetSettings"};return DotnetSettings}();api.RubySettings=function(){function RubySettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RubySettings.prototype.common=null;RubySettings.create=function create(properties){return new RubySettings(properties)};RubySettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();return writer};RubySettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RubySettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.RubySettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RubySettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RubySettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};RubySettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.RubySettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.RubySettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.RubySettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};RubySettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};RubySettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RubySettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.RubySettings"};return RubySettings}();api.GoSettings=function(){function GoSettings(properties){this.renamedServices={};if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}GoSettings.prototype.common=null;GoSettings.prototype.renamedServices=$util.emptyObject;GoSettings.create=function create(properties){return new GoSettings(properties)};GoSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();if(message.renamedServices!=null&&Object.hasOwnProperty.call(message,"renamedServices"))for(var keys=Object.keys(message.renamedServices),i=0;i<keys.length;++i)writer.uint32(18).fork().uint32(10).string(keys[i]).uint32(18).string(message.renamedServices[keys[i]]).ldelim();return writer};GoSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};GoSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.GoSettings,key,value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(message.renamedServices===$util.emptyObject)message.renamedServices={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos<end2){var tag2=reader.uint32();switch(tag2>>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.renamedServices,key);message.renamedServices[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};GoSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GoSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.renamedServices!=null&&message.hasOwnProperty("renamedServices")){if(!$util.isObject(message.renamedServices))return"renamedServices: object expected";var key=Object.keys(message.renamedServices);for(var i=0;i<key.length;++i)if(!$util.isString(message.renamedServices[key[i]]))return"renamedServices: string{k:string} expected"}return null};GoSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.GoSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.GoSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.GoSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.renamedServices){if(typeof object.renamedServices!=="object")throw TypeError(".google.api.GoSettings.renamedServices: object expected");message.renamedServices={};for(var keys=Object.keys(object.renamedServices),i=0;i<keys.length;++i){if(keys[i]==="__proto__")$util.makeProp(message.renamedServices,keys[i]);message.renamedServices[keys[i]]=String(object.renamedServices[keys[i]])}}return message};GoSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.objects||options.defaults)object.renamedServices={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);var keys2;if(message.renamedServices&&(keys2=Object.keys(message.renamedServices)).length){object.renamedServices={};for(var j=0;j<keys2.length;++j){if(keys2[j]==="__proto__")$util.makeProp(object.renamedServices,keys2[j]);object.renamedServices[keys2[j]]=message.renamedServices[keys2[j]]}}return object};GoSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GoSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.GoSettings"};return GoSettings}();api.MethodSettings=function(){function MethodSettings(properties){this.autoPopulatedFields=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}MethodSettings.prototype.selector="";MethodSettings.prototype.longRunning=null;MethodSettings.prototype.autoPopulatedFields=$util.emptyArray;MethodSettings.prototype.batching=null;MethodSettings.create=function create(properties){return new MethodSettings(properties)};MethodSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.selector!=null&&Object.hasOwnProperty.call(message,"selector"))writer.uint32(10).string(message.selector);if(message.longRunning!=null&&Object.hasOwnProperty.call(message,"longRunning"))$root.google.api.MethodSettings.LongRunning.encode(message.longRunning,writer.uint32(18).fork()).ldelim();if(message.autoPopulatedFields!=null&&message.autoPopulatedFields.length)for(var i=0;i<message.autoPopulatedFields.length;++i)writer.uint32(26).string(message.autoPopulatedFields[i]);if(message.batching!=null&&Object.hasOwnProperty.call(message,"batching"))$root.google.api.BatchingConfigProto.encode(message.batching,writer.uint32(34).fork()).ldelim();return writer};MethodSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};MethodSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.MethodSettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.selector=reader.string();break}case 2:{message.longRunning=$root.google.api.MethodSettings.LongRunning.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{if(!(message.autoPopulatedFields&&message.autoPopulatedFields.length))message.autoPopulatedFields=[];message.autoPopulatedFields.push(reader.string());break}case 4:{message.batching=$root.google.api.BatchingConfigProto.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};MethodSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MethodSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.selector!=null&&message.hasOwnProperty("selector"))if(!$util.isString(message.selector))return"selector: string expected";if(message.longRunning!=null&&message.hasOwnProperty("longRunning")){var error=$root.google.api.MethodSettings.LongRunning.verify(message.longRunning,long+1);if(error)return"longRunning."+error}if(message.autoPopulatedFields!=null&&message.hasOwnProperty("autoPopulatedFields")){if(!Array.isArray(message.autoPopulatedFields))return"autoPopulatedFields: array expected";for(var i=0;i<message.autoPopulatedFields.length;++i)if(!$util.isString(message.autoPopulatedFields[i]))return"autoPopulatedFields: string[] expected"}if(message.batching!=null&&message.hasOwnProperty("batching")){var error=$root.google.api.BatchingConfigProto.verify(message.batching,long+1);if(error)return"batching."+error}return null};MethodSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.MethodSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.MethodSettings;if(object.selector!=null)message.selector=String(object.selector);if(object.longRunning!=null){if(typeof object.longRunning!=="object")throw TypeError(".google.api.MethodSettings.longRunning: object expected");message.longRunning=$root.google.api.MethodSettings.LongRunning.fromObject(object.longRunning,long+1)}if(object.autoPopulatedFields){if(!Array.isArray(object.autoPopulatedFields))throw TypeError(".google.api.MethodSettings.autoPopulatedFields: array expected");message.autoPopulatedFields=[];for(var i=0;i<object.autoPopulatedFields.length;++i)message.autoPopulatedFields[i]=String(object.autoPopulatedFields[i])}if(object.batching!=null){if(typeof object.batching!=="object")throw TypeError(".google.api.MethodSettings.batching: object expected");message.batching=$root.google.api.BatchingConfigProto.fromObject(object.batching,long+1)}return message};MethodSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.autoPopulatedFields=[];if(options.defaults){object.selector="";object.longRunning=null;object.batching=null}if(message.selector!=null&&message.hasOwnProperty("selector"))object.selector=message.selector;if(message.longRunning!=null&&message.hasOwnProperty("longRunning"))object.longRunning=$root.google.api.MethodSettings.LongRunning.toObject(message.longRunning,options);if(message.autoPopulatedFields&&message.autoPopulatedFields.length){object.autoPopulatedFields=[];for(var j=0;j<message.autoPopulatedFields.length;++j)object.autoPopulatedFields[j]=message.autoPopulatedFields[j]}if(message.batching!=null&&message.hasOwnProperty("batching"))object.batching=$root.google.api.BatchingConfigProto.toObject(message.batching,options);return object};MethodSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};MethodSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.MethodSettings"};MethodSettings.LongRunning=function(){function LongRunning(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}LongRunning.prototype.initialPollDelay=null;LongRunning.prototype.pollDelayMultiplier=0;LongRunning.prototype.maxPollDelay=null;LongRunning.prototype.totalPollTimeout=null;LongRunning.create=function create(properties){return new LongRunning(properties)};LongRunning.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.initialPollDelay!=null&&Object.hasOwnProperty.call(message,"initialPollDelay"))$root.google.protobuf.Duration.encode(message.initialPollDelay,writer.uint32(10).fork()).ldelim();if(message.pollDelayMultiplier!=null&&Object.hasOwnProperty.call(message,"pollDelayMultiplier"))writer.uint32(21).float(message.pollDelayMultiplier);if(message.maxPollDelay!=null&&Object.hasOwnProperty.call(message,"maxPollDelay"))$root.google.protobuf.Duration.encode(message.maxPollDelay,writer.uint32(26).fork()).ldelim();if(message.totalPollTimeout!=null&&Object.hasOwnProperty.call(message,"totalPollTimeout"))$root.google.protobuf.Duration.encode(message.totalPollTimeout,writer.uint32(34).fork()).ldelim();return writer};LongRunning.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};LongRunning.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.MethodSettings.LongRunning;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.initialPollDelay=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.pollDelayMultiplier=reader.float();break}case 3:{message.maxPollDelay=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.totalPollTimeout=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};LongRunning.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LongRunning.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.initialPollDelay!=null&&message.hasOwnProperty("initialPollDelay")){var error=$root.google.protobuf.Duration.verify(message.initialPollDelay,long+1);if(error)return"initialPollDelay."+error}if(message.pollDelayMultiplier!=null&&message.hasOwnProperty("pollDelayMultiplier"))if(typeof message.pollDelayMultiplier!=="number")return"pollDelayMultiplier: number expected";if(message.maxPollDelay!=null&&message.hasOwnProperty("maxPollDelay")){var error=$root.google.protobuf.Duration.verify(message.maxPollDelay,long+1);if(error)return"maxPollDelay."+error}if(message.totalPollTimeout!=null&&message.hasOwnProperty("totalPollTimeout")){var error=$root.google.protobuf.Duration.verify(message.totalPollTimeout,long+1);if(error)return"totalPollTimeout."+error}return null};LongRunning.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.MethodSettings.LongRunning)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.MethodSettings.LongRunning;if(object.initialPollDelay!=null){if(typeof object.initialPollDelay!=="object")throw TypeError(".google.api.MethodSettings.LongRunning.initialPollDelay: object expected");message.initialPollDelay=$root.google.protobuf.Duration.fromObject(object.initialPollDelay,long+1)}if(object.pollDelayMultiplier!=null)message.pollDelayMultiplier=Number(object.pollDelayMultiplier);if(object.maxPollDelay!=null){if(typeof object.maxPollDelay!=="object")throw TypeError(".google.api.MethodSettings.LongRunning.maxPollDelay: object expected");message.maxPollDelay=$root.google.protobuf.Duration.fromObject(object.maxPollDelay,long+1)}if(object.totalPollTimeout!=null){if(typeof object.totalPollTimeout!=="object")throw TypeError(".google.api.MethodSettings.LongRunning.totalPollTimeout: object expected");message.totalPollTimeout=$root.google.protobuf.Duration.fromObject(object.totalPollTimeout,long+1)}return message};LongRunning.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.initialPollDelay=null;object.pollDelayMultiplier=0;object.maxPollDelay=null;object.totalPollTimeout=null}if(message.initialPollDelay!=null&&message.hasOwnProperty("initialPollDelay"))object.initialPollDelay=$root.google.protobuf.Duration.toObject(message.initialPollDelay,options);if(message.pollDelayMultiplier!=null&&message.hasOwnProperty("pollDelayMultiplier"))object.pollDelayMultiplier=options.json&&!isFinite(message.pollDelayMultiplier)?String(message.pollDelayMultiplier):message.pollDelayMultiplier;if(message.maxPollDelay!=null&&message.hasOwnProperty("maxPollDelay"))object.maxPollDelay=$root.google.protobuf.Duration.toObject(message.maxPollDelay,options);if(message.totalPollTimeout!=null&&message.hasOwnProperty("totalPollTimeout"))object.totalPollTimeout=$root.google.protobuf.Duration.toObject(message.totalPollTimeout,options);return object};LongRunning.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LongRunning.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.MethodSettings.LongRunning"};return LongRunning}();return MethodSettings}();api.ClientLibraryOrganization=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED"]=0;values[valuesById[1]="CLOUD"]=1;values[valuesById[2]="ADS"]=2;values[valuesById[3]="PHOTOS"]=3;values[valuesById[4]="STREET_VIEW"]=4;values[valuesById[5]="SHOPPING"]=5;values[valuesById[6]="GEO"]=6;values[valuesById[7]="GENERATIVE_AI"]=7;return values}();api.ClientLibraryDestination=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CLIENT_LIBRARY_DESTINATION_UNSPECIFIED"]=0;values[valuesById[10]="GITHUB"]=10;values[valuesById[20]="PACKAGE_MANAGER"]=20;return values}();api.SelectiveGapicGeneration=function(){function SelectiveGapicGeneration(properties){this.methods=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}SelectiveGapicGeneration.prototype.methods=$util.emptyArray;SelectiveGapicGeneration.prototype.generateOmittedAsInternal=false;SelectiveGapicGeneration.create=function create(properties){return new SelectiveGapicGeneration(properties)};SelectiveGapicGeneration.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.methods!=null&&message.methods.length)for(var i=0;i<message.methods.length;++i)writer.uint32(10).string(message.methods[i]);if(message.generateOmittedAsInternal!=null&&Object.hasOwnProperty.call(message,"generateOmittedAsInternal"))writer.uint32(16).bool(message.generateOmittedAsInternal);return writer};SelectiveGapicGeneration.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};SelectiveGapicGeneration.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.SelectiveGapicGeneration;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.methods&&message.methods.length))message.methods=[];message.methods.push(reader.string());break}case 2:{message.generateOmittedAsInternal=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};SelectiveGapicGeneration.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SelectiveGapicGeneration.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.methods!=null&&message.hasOwnProperty("methods")){if(!Array.isArray(message.methods))return"methods: array expected";for(var i=0;i<message.methods.length;++i)if(!$util.isString(message.methods[i]))return"methods: string[] expected"}if(message.generateOmittedAsInternal!=null&&message.hasOwnProperty("generateOmittedAsInternal"))if(typeof message.generateOmittedAsInternal!=="boolean")return"generateOmittedAsInternal: boolean expected";return null};SelectiveGapicGeneration.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.SelectiveGapicGeneration)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.SelectiveGapicGeneration;if(object.methods){if(!Array.isArray(object.methods))throw TypeError(".google.api.SelectiveGapicGeneration.methods: array expected");message.methods=[];for(var i=0;i<object.methods.length;++i)message.methods[i]=String(object.methods[i])}if(object.generateOmittedAsInternal!=null)message.generateOmittedAsInternal=Boolean(object.generateOmittedAsInternal);return message};SelectiveGapicGeneration.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.methods=[];if(options.defaults)object.generateOmittedAsInternal=false;if(message.methods&&message.methods.length){object.methods=[];for(var j=0;j<message.methods.length;++j)object.methods[j]=message.methods[j]}if(message.generateOmittedAsInternal!=null&&message.hasOwnProperty("generateOmittedAsInternal"))object.generateOmittedAsInternal=message.generateOmittedAsInternal;return object};SelectiveGapicGeneration.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SelectiveGapicGeneration.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.SelectiveGapicGeneration"};return SelectiveGapicGeneration}();api.BatchingConfigProto=function(){function BatchingConfigProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}BatchingConfigProto.prototype.thresholds=null;BatchingConfigProto.prototype.batchDescriptor=null;BatchingConfigProto.create=function create(properties){return new BatchingConfigProto(properties)};BatchingConfigProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.thresholds!=null&&Object.hasOwnProperty.call(message,"thresholds"))$root.google.api.BatchingSettingsProto.encode(message.thresholds,writer.uint32(10).fork()).ldelim();if(message.batchDescriptor!=null&&Object.hasOwnProperty.call(message,"batchDescriptor"))$root.google.api.BatchingDescriptorProto.encode(message.batchDescriptor,writer.uint32(18).fork()).ldelim();return writer};BatchingConfigProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};BatchingConfigProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.BatchingConfigProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.thresholds=$root.google.api.BatchingSettingsProto.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.batchDescriptor=$root.google.api.BatchingDescriptorProto.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BatchingConfigProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchingConfigProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.thresholds!=null&&message.hasOwnProperty("thresholds")){var error=$root.google.api.BatchingSettingsProto.verify(message.thresholds,long+1);if(error)return"thresholds."+error}if(message.batchDescriptor!=null&&message.hasOwnProperty("batchDescriptor")){var error=$root.google.api.BatchingDescriptorProto.verify(message.batchDescriptor,long+1);if(error)return"batchDescriptor."+error}return null};BatchingConfigProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.BatchingConfigProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.BatchingConfigProto;if(object.thresholds!=null){if(typeof object.thresholds!=="object")throw TypeError(".google.api.BatchingConfigProto.thresholds: object expected");message.thresholds=$root.google.api.BatchingSettingsProto.fromObject(object.thresholds,long+1)}if(object.batchDescriptor!=null){if(typeof object.batchDescriptor!=="object")throw TypeError(".google.api.BatchingConfigProto.batchDescriptor: object expected");message.batchDescriptor=$root.google.api.BatchingDescriptorProto.fromObject(object.batchDescriptor,long+1)}return message};BatchingConfigProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.thresholds=null;object.batchDescriptor=null}if(message.thresholds!=null&&message.hasOwnProperty("thresholds"))object.thresholds=$root.google.api.BatchingSettingsProto.toObject(message.thresholds,options);if(message.batchDescriptor!=null&&message.hasOwnProperty("batchDescriptor"))object.batchDescriptor=$root.google.api.BatchingDescriptorProto.toObject(message.batchDescriptor,options);return object};BatchingConfigProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BatchingConfigProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.BatchingConfigProto"};return BatchingConfigProto}();api.BatchingSettingsProto=function(){function BatchingSettingsProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}BatchingSettingsProto.prototype.elementCountThreshold=0;BatchingSettingsProto.prototype.requestByteThreshold=$util.Long?$util.Long.fromBits(0,0,false):0;BatchingSettingsProto.prototype.delayThreshold=null;BatchingSettingsProto.prototype.elementCountLimit=0;BatchingSettingsProto.prototype.requestByteLimit=0;BatchingSettingsProto.prototype.flowControlElementLimit=0;BatchingSettingsProto.prototype.flowControlByteLimit=0;BatchingSettingsProto.prototype.flowControlLimitExceededBehavior=0;BatchingSettingsProto.create=function create(properties){return new BatchingSettingsProto(properties)};BatchingSettingsProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.elementCountThreshold!=null&&Object.hasOwnProperty.call(message,"elementCountThreshold"))writer.uint32(8).int32(message.elementCountThreshold);if(message.requestByteThreshold!=null&&Object.hasOwnProperty.call(message,"requestByteThreshold"))writer.uint32(16).int64(message.requestByteThreshold);if(message.delayThreshold!=null&&Object.hasOwnProperty.call(message,"delayThreshold"))$root.google.protobuf.Duration.encode(message.delayThreshold,writer.uint32(26).fork()).ldelim();if(message.elementCountLimit!=null&&Object.hasOwnProperty.call(message,"elementCountLimit"))writer.uint32(32).int32(message.elementCountLimit);if(message.requestByteLimit!=null&&Object.hasOwnProperty.call(message,"requestByteLimit"))writer.uint32(40).int32(message.requestByteLimit);if(message.flowControlElementLimit!=null&&Object.hasOwnProperty.call(message,"flowControlElementLimit"))writer.uint32(48).int32(message.flowControlElementLimit);if(message.flowControlByteLimit!=null&&Object.hasOwnProperty.call(message,"flowControlByteLimit"))writer.uint32(56).int32(message.flowControlByteLimit);if(message.flowControlLimitExceededBehavior!=null&&Object.hasOwnProperty.call(message,"flowControlLimitExceededBehavior"))writer.uint32(64).int32(message.flowControlLimitExceededBehavior);return writer};BatchingSettingsProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};BatchingSettingsProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.BatchingSettingsProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.elementCountThreshold=reader.int32();break}case 2:{message.requestByteThreshold=reader.int64();break}case 3:{message.delayThreshold=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.elementCountLimit=reader.int32();break}case 5:{message.requestByteLimit=reader.int32();break}case 6:{message.flowControlElementLimit=reader.int32();break}case 7:{message.flowControlByteLimit=reader.int32();break}case 8:{message.flowControlLimitExceededBehavior=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};BatchingSettingsProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchingSettingsProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.elementCountThreshold!=null&&message.hasOwnProperty("elementCountThreshold"))if(!$util.isInteger(message.elementCountThreshold))return"elementCountThreshold: integer expected";if(message.requestByteThreshold!=null&&message.hasOwnProperty("requestByteThreshold"))if(!$util.isInteger(message.requestByteThreshold)&&!(message.requestByteThreshold&&$util.isInteger(message.requestByteThreshold.low)&&$util.isInteger(message.requestByteThreshold.high)))return"requestByteThreshold: integer|Long expected";if(message.delayThreshold!=null&&message.hasOwnProperty("delayThreshold")){var error=$root.google.protobuf.Duration.verify(message.delayThreshold,long+1);if(error)return"delayThreshold."+error}if(message.elementCountLimit!=null&&message.hasOwnProperty("elementCountLimit"))if(!$util.isInteger(message.elementCountLimit))return"elementCountLimit: integer expected";if(message.requestByteLimit!=null&&message.hasOwnProperty("requestByteLimit"))if(!$util.isInteger(message.requestByteLimit))return"requestByteLimit: integer expected";if(message.flowControlElementLimit!=null&&message.hasOwnProperty("flowControlElementLimit"))if(!$util.isInteger(message.flowControlElementLimit))return"flowControlElementLimit: integer expected";if(message.flowControlByteLimit!=null&&message.hasOwnProperty("flowControlByteLimit"))if(!$util.isInteger(message.flowControlByteLimit))return"flowControlByteLimit: integer expected";if(message.flowControlLimitExceededBehavior!=null&&message.hasOwnProperty("flowControlLimitExceededBehavior"))switch(message.flowControlLimitExceededBehavior){default:return"flowControlLimitExceededBehavior: enum value expected";case 0:case 1:case 2:case 3:break}return null};BatchingSettingsProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.BatchingSettingsProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.BatchingSettingsProto;if(object.elementCountThreshold!=null)message.elementCountThreshold=object.elementCountThreshold|0;if(object.requestByteThreshold!=null)if($util.Long)(message.requestByteThreshold=$util.Long.fromValue(object.requestByteThreshold)).unsigned=false;else if(typeof object.requestByteThreshold==="string")message.requestByteThreshold=parseInt(object.requestByteThreshold,10);else if(typeof object.requestByteThreshold==="number")message.requestByteThreshold=object.requestByteThreshold;else if(typeof object.requestByteThreshold==="object")message.requestByteThreshold=new $util.LongBits(object.requestByteThreshold.low>>>0,object.requestByteThreshold.high>>>0).toNumber();if(object.delayThreshold!=null){if(typeof object.delayThreshold!=="object")throw TypeError(".google.api.BatchingSettingsProto.delayThreshold: object expected");message.delayThreshold=$root.google.protobuf.Duration.fromObject(object.delayThreshold,long+1)}if(object.elementCountLimit!=null)message.elementCountLimit=object.elementCountLimit|0;if(object.requestByteLimit!=null)message.requestByteLimit=object.requestByteLimit|0;if(object.flowControlElementLimit!=null)message.flowControlElementLimit=object.flowControlElementLimit|0;if(object.flowControlByteLimit!=null)message.flowControlByteLimit=object.flowControlByteLimit|0;switch(object.flowControlLimitExceededBehavior){default:if(typeof object.flowControlLimitExceededBehavior==="number"){message.flowControlLimitExceededBehavior=object.flowControlLimitExceededBehavior;break}break;case"UNSET_BEHAVIOR":case 0:message.flowControlLimitExceededBehavior=0;break;case"THROW_EXCEPTION":case 1:message.flowControlLimitExceededBehavior=1;break;case"BLOCK":case 2:message.flowControlLimitExceededBehavior=2;break;case"IGNORE":case 3:message.flowControlLimitExceededBehavior=3;break}return message};BatchingSettingsProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.elementCountThreshold=0;if($util.Long){var long=new $util.Long(0,0,false);object.requestByteThreshold=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.requestByteThreshold=options.longs===String?"0":0;object.delayThreshold=null;object.elementCountLimit=0;object.requestByteLimit=0;object.flowControlElementLimit=0;object.flowControlByteLimit=0;object.flowControlLimitExceededBehavior=options.enums===String?"UNSET_BEHAVIOR":0}if(message.elementCountThreshold!=null&&message.hasOwnProperty("elementCountThreshold"))object.elementCountThreshold=message.elementCountThreshold;if(message.requestByteThreshold!=null&&message.hasOwnProperty("requestByteThreshold"))if(typeof message.requestByteThreshold==="number")object.requestByteThreshold=options.longs===String?String(message.requestByteThreshold):message.requestByteThreshold;else object.requestByteThreshold=options.longs===String?$util.Long.prototype.toString.call(message.requestByteThreshold):options.longs===Number?new $util.LongBits(message.requestByteThreshold.low>>>0,message.requestByteThreshold.high>>>0).toNumber():message.requestByteThreshold;if(message.delayThreshold!=null&&message.hasOwnProperty("delayThreshold"))object.delayThreshold=$root.google.protobuf.Duration.toObject(message.delayThreshold,options);if(message.elementCountLimit!=null&&message.hasOwnProperty("elementCountLimit"))object.elementCountLimit=message.elementCountLimit;if(message.requestByteLimit!=null&&message.hasOwnProperty("requestByteLimit"))object.requestByteLimit=message.requestByteLimit;if(message.flowControlElementLimit!=null&&message.hasOwnProperty("flowControlElementLimit"))object.flowControlElementLimit=message.flowControlElementLimit;if(message.flowControlByteLimit!=null&&message.hasOwnProperty("flowControlByteLimit"))object.flowControlByteLimit=message.flowControlByteLimit;if(message.flowControlLimitExceededBehavior!=null&&message.hasOwnProperty("flowControlLimitExceededBehavior"))object.flowControlLimitExceededBehavior=options.enums===String?$root.google.api.FlowControlLimitExceededBehaviorProto[message.flowControlLimitExceededBehavior]===undefined?message.flowControlLimitExceededBehavior:$root.google.api.FlowControlLimitExceededBehaviorProto[message.flowControlLimitExceededBehavior]:message.flowControlLimitExceededBehavior;return object};BatchingSettingsProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BatchingSettingsProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.BatchingSettingsProto"};return BatchingSettingsProto}();api.FlowControlLimitExceededBehaviorProto=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="UNSET_BEHAVIOR"]=0;values[valuesById[1]="THROW_EXCEPTION"]=1;values[valuesById[2]="BLOCK"]=2;values[valuesById[3]="IGNORE"]=3;return values}();api.BatchingDescriptorProto=function(){function BatchingDescriptorProto(properties){this.discriminatorFields=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}BatchingDescriptorProto.prototype.batchedField="";BatchingDescriptorProto.prototype.discriminatorFields=$util.emptyArray;BatchingDescriptorProto.prototype.subresponseField="";BatchingDescriptorProto.create=function create(properties){return new BatchingDescriptorProto(properties)};BatchingDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.batchedField!=null&&Object.hasOwnProperty.call(message,"batchedField"))writer.uint32(10).string(message.batchedField);if(message.discriminatorFields!=null&&message.discriminatorFields.length)for(var i=0;i<message.discriminatorFields.length;++i)writer.uint32(18).string(message.discriminatorFields[i]);if(message.subresponseField!=null&&Object.hasOwnProperty.call(message,"subresponseField"))writer.uint32(26).string(message.subresponseField);return writer};BatchingDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};BatchingDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.BatchingDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.batchedField=reader.string();break}case 2:{if(!(message.discriminatorFields&&message.discriminatorFields.length))message.discriminatorFields=[];message.discriminatorFields.push(reader.string());break}case 3:{message.subresponseField=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};BatchingDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchingDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.batchedField!=null&&message.hasOwnProperty("batchedField"))if(!$util.isString(message.batchedField))return"batchedField: string expected";if(message.discriminatorFields!=null&&message.hasOwnProperty("discriminatorFields")){if(!Array.isArray(message.discriminatorFields))return"discriminatorFields: array expected";for(var i=0;i<message.discriminatorFields.length;++i)if(!$util.isString(message.discriminatorFields[i]))return"discriminatorFields: string[] expected"}if(message.subresponseField!=null&&message.hasOwnProperty("subresponseField"))if(!$util.isString(message.subresponseField))return"subresponseField: string expected";return null};BatchingDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.BatchingDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.BatchingDescriptorProto;if(object.batchedField!=null)message.batchedField=String(object.batchedField);if(object.discriminatorFields){if(!Array.isArray(object.discriminatorFields))throw TypeError(".google.api.BatchingDescriptorProto.discriminatorFields: array expected");message.discriminatorFields=[];for(var i=0;i<object.discriminatorFields.length;++i)message.discriminatorFields[i]=String(object.discriminatorFields[i])}if(object.subresponseField!=null)message.subresponseField=String(object.subresponseField);return message};BatchingDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.discriminatorFields=[];if(options.defaults){object.batchedField="";object.subresponseField=""}if(message.batchedField!=null&&message.hasOwnProperty("batchedField"))object.batchedField=message.batchedField;if(message.discriminatorFields&&message.discriminatorFields.length){object.discriminatorFields=[];for(var j=0;j<message.discriminatorFields.length;++j)object.discriminatorFields[j]=message.discriminatorFields[j]}if(message.subresponseField!=null&&message.hasOwnProperty("subresponseField"))object.subresponseField=message.subresponseField;return object};BatchingDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BatchingDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.BatchingDescriptorProto"};return BatchingDescriptorProto}();api.LaunchStage=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="LAUNCH_STAGE_UNSPECIFIED"]=0;values[valuesById[6]="UNIMPLEMENTED"]=6;values[valuesById[7]="PRELAUNCH"]=7;values[valuesById[1]="EARLY_ACCESS"]=1;values[valuesById[2]="ALPHA"]=2;values[valuesById[3]="BETA"]=3;values[valuesById[4]="GA"]=4;values[valuesById[5]="DEPRECATED"]=5;return values}();return api}();return google}();return $root});
|
|
1
|
+
(function(global,factory){if(typeof define==="function"&&define.amd)define(["protobufjs/minimal"],factory);else if(typeof require==="function"&&typeof module==="object"&&module&&module.exports)module.exports=factory(require("google-gax/build/src/protobuf").protobufMinimal)})(this,function($protobuf){"use strict";var $Reader=$protobuf.Reader,$Writer=$protobuf.Writer,$util=$protobuf.util;var $root=$protobuf.roots._googlemaps_routing_protos||($protobuf.roots._googlemaps_routing_protos={});$root.google=function(){var google={};google.protobuf=function(){var protobuf={};protobuf.Any=function(){function Any(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Any.prototype.type_url="";Any.prototype.value=$util.newBuffer([]);Any.create=function create(properties){return new Any(properties)};Any.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.type_url!=null&&Object.hasOwnProperty.call(message,"type_url"))writer.uint32(10).string(message.type_url);if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(18).bytes(message.value);return writer};Any.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Any.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Any;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.type_url=reader.string();break}case 2:{message.value=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};Any.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Any.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.type_url!=null&&message.hasOwnProperty("type_url"))if(!$util.isString(message.type_url))return"type_url: string expected";if(message.value!=null&&message.hasOwnProperty("value"))if(!(message.value&&typeof message.value.length==="number"||$util.isString(message.value)))return"value: buffer expected";return null};Any.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Any)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Any;if(object.type_url!=null)message.type_url=String(object.type_url);if(object.value!=null)if(typeof object.value==="string")$util.base64.decode(object.value,message.value=$util.newBuffer($util.base64.length(object.value)),0);else if(object.value.length>=0)message.value=object.value;return message};Any.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.type_url="";if(options.bytes===String)object.value="";else{object.value=[];if(options.bytes!==Array)object.value=$util.newBuffer(object.value)}}if(message.type_url!=null&&message.hasOwnProperty("type_url"))object.type_url=message.type_url;if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.bytes===String?$util.base64.encode(message.value,0,message.value.length):options.bytes===Array?Array.prototype.slice.call(message.value):message.value;return object};Any.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Any.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Any"};return Any}();protobuf.DoubleValue=function(){function DoubleValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}DoubleValue.prototype.value=0;DoubleValue.create=function create(properties){return new DoubleValue(properties)};DoubleValue.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(9).double(message.value);return writer};DoubleValue.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};DoubleValue.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DoubleValue;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.double();break}default:reader.skipType(tag&7,long);break}}return message};DoubleValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DoubleValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value!=="number")return"value: number expected";return null};DoubleValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DoubleValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DoubleValue;if(object.value!=null)message.value=Number(object.value);return message};DoubleValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.json&&!isFinite(message.value)?String(message.value):message.value;return object};DoubleValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DoubleValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DoubleValue"};return DoubleValue}();protobuf.FloatValue=function(){function FloatValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FloatValue.prototype.value=0;FloatValue.create=function create(properties){return new FloatValue(properties)};FloatValue.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(13).float(message.value);return writer};FloatValue.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FloatValue.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FloatValue;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.float();break}default:reader.skipType(tag&7,long);break}}return message};FloatValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FloatValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value!=="number")return"value: number expected";return null};FloatValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FloatValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FloatValue;if(object.value!=null)message.value=Number(object.value);return message};FloatValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.json&&!isFinite(message.value)?String(message.value):message.value;return object};FloatValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FloatValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FloatValue"};return FloatValue}();protobuf.Int64Value=function(){function Int64Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Int64Value.prototype.value=$util.Long?$util.Long.fromBits(0,0,false):0;Int64Value.create=function create(properties){return new Int64Value(properties)};Int64Value.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(8).int64(message.value);return writer};Int64Value.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Int64Value.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Int64Value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.int64();break}default:reader.skipType(tag&7,long);break}}return message};Int64Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Int64Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value)&&!(message.value&&$util.isInteger(message.value.low)&&$util.isInteger(message.value.high)))return"value: integer|Long expected";return null};Int64Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Int64Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Int64Value;if(object.value!=null)if($util.Long)(message.value=$util.Long.fromValue(object.value)).unsigned=false;else if(typeof object.value==="string")message.value=parseInt(object.value,10);else if(typeof object.value==="number")message.value=object.value;else if(typeof object.value==="object")message.value=new $util.LongBits(object.value.low>>>0,object.value.high>>>0).toNumber();return message};Int64Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if($util.Long){var long=new $util.Long(0,0,false);object.value=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.value=options.longs===String?"0":0;if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value==="number")object.value=options.longs===String?String(message.value):message.value;else object.value=options.longs===String?$util.Long.prototype.toString.call(message.value):options.longs===Number?new $util.LongBits(message.value.low>>>0,message.value.high>>>0).toNumber():message.value;return object};Int64Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Int64Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Int64Value"};return Int64Value}();protobuf.UInt64Value=function(){function UInt64Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}UInt64Value.prototype.value=$util.Long?$util.Long.fromBits(0,0,true):0;UInt64Value.create=function create(properties){return new UInt64Value(properties)};UInt64Value.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(8).uint64(message.value);return writer};UInt64Value.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};UInt64Value.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UInt64Value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.uint64();break}default:reader.skipType(tag&7,long);break}}return message};UInt64Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UInt64Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value)&&!(message.value&&$util.isInteger(message.value.low)&&$util.isInteger(message.value.high)))return"value: integer|Long expected";return null};UInt64Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UInt64Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UInt64Value;if(object.value!=null)if($util.Long)(message.value=$util.Long.fromValue(object.value)).unsigned=true;else if(typeof object.value==="string")message.value=parseInt(object.value,10);else if(typeof object.value==="number")message.value=object.value;else if(typeof object.value==="object")message.value=new $util.LongBits(object.value.low>>>0,object.value.high>>>0).toNumber(true);return message};UInt64Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if($util.Long){var long=new $util.Long(0,0,true);object.value=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.value=options.longs===String?"0":0;if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value==="number")object.value=options.longs===String?String(message.value):message.value;else object.value=options.longs===String?$util.Long.prototype.toString.call(message.value):options.longs===Number?new $util.LongBits(message.value.low>>>0,message.value.high>>>0).toNumber(true):message.value;return object};UInt64Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UInt64Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UInt64Value"};return UInt64Value}();protobuf.Int32Value=function(){function Int32Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Int32Value.prototype.value=0;Int32Value.create=function create(properties){return new Int32Value(properties)};Int32Value.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(8).int32(message.value);return writer};Int32Value.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Int32Value.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Int32Value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Int32Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Int32Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value))return"value: integer expected";return null};Int32Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Int32Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Int32Value;if(object.value!=null)message.value=object.value|0;return message};Int32Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};Int32Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Int32Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Int32Value"};return Int32Value}();protobuf.UInt32Value=function(){function UInt32Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}UInt32Value.prototype.value=0;UInt32Value.create=function create(properties){return new UInt32Value(properties)};UInt32Value.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(8).uint32(message.value);return writer};UInt32Value.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};UInt32Value.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UInt32Value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.uint32();break}default:reader.skipType(tag&7,long);break}}return message};UInt32Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UInt32Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value))return"value: integer expected";return null};UInt32Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UInt32Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UInt32Value;if(object.value!=null)message.value=object.value>>>0;return message};UInt32Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};UInt32Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UInt32Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UInt32Value"};return UInt32Value}();protobuf.BoolValue=function(){function BoolValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}BoolValue.prototype.value=false;BoolValue.create=function create(properties){return new BoolValue(properties)};BoolValue.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(8).bool(message.value);return writer};BoolValue.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};BoolValue.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.BoolValue;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};BoolValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BoolValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value!=="boolean")return"value: boolean expected";return null};BoolValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.BoolValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.BoolValue;if(object.value!=null)message.value=Boolean(object.value);return message};BoolValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=false;if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};BoolValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BoolValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.BoolValue"};return BoolValue}();protobuf.StringValue=function(){function StringValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}StringValue.prototype.value="";StringValue.create=function create(properties){return new StringValue(properties)};StringValue.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(10).string(message.value);return writer};StringValue.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};StringValue.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.StringValue;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};StringValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StringValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isString(message.value))return"value: string expected";return null};StringValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.StringValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.StringValue;if(object.value!=null)message.value=String(object.value);return message};StringValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value="";if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};StringValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};StringValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.StringValue"};return StringValue}();protobuf.BytesValue=function(){function BytesValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}BytesValue.prototype.value=$util.newBuffer([]);BytesValue.create=function create(properties){return new BytesValue(properties)};BytesValue.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(10).bytes(message.value);return writer};BytesValue.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};BytesValue.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.BytesValue;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.value=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};BytesValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BytesValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!(message.value&&typeof message.value.length==="number"||$util.isString(message.value)))return"value: buffer expected";return null};BytesValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.BytesValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.BytesValue;if(object.value!=null)if(typeof object.value==="string")$util.base64.decode(object.value,message.value=$util.newBuffer($util.base64.length(object.value)),0);else if(object.value.length>=0)message.value=object.value;return message};BytesValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if(options.bytes===String)object.value="";else{object.value=[];if(options.bytes!==Array)object.value=$util.newBuffer(object.value)}if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.bytes===String?$util.base64.encode(message.value,0,message.value.length):options.bytes===Array?Array.prototype.slice.call(message.value):message.value;return object};BytesValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BytesValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.BytesValue"};return BytesValue}();protobuf.Struct=function(){function Struct(properties){this.fields={};if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Struct.prototype.fields=$util.emptyObject;Struct.create=function create(properties){return new Struct(properties)};Struct.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.fields!=null&&Object.hasOwnProperty.call(message,"fields"))for(var keys=Object.keys(message.fields),i=0;i<keys.length;++i){writer.uint32(10).fork().uint32(10).string(keys[i]);$root.google.protobuf.Value.encode(message.fields[keys[i]],writer.uint32(18).fork()).ldelim().ldelim()}return writer};Struct.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Struct.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Struct,key,value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(message.fields===$util.emptyObject)message.fields={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos<end2){var tag2=reader.uint32();switch(tag2>>>3){case 1:key=reader.string();break;case 2:value=$root.google.protobuf.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.fields,key);message.fields[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};Struct.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Struct.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!$util.isObject(message.fields))return"fields: object expected";var key=Object.keys(message.fields);for(var i=0;i<key.length;++i){var error=$root.google.protobuf.Value.verify(message.fields[key[i]],long+1);if(error)return"fields."+error}}return null};Struct.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Struct)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Struct;if(object.fields){if(typeof object.fields!=="object")throw TypeError(".google.protobuf.Struct.fields: object expected");message.fields={};for(var keys=Object.keys(object.fields),i=0;i<keys.length;++i){if(keys[i]==="__proto__")$util.makeProp(message.fields,keys[i]);if(typeof object.fields[keys[i]]!=="object")throw TypeError(".google.protobuf.Struct.fields: object expected");message.fields[keys[i]]=$root.google.protobuf.Value.fromObject(object.fields[keys[i]],long+1)}}return message};Struct.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.objects||options.defaults)object.fields={};var keys2;if(message.fields&&(keys2=Object.keys(message.fields)).length){object.fields={};for(var j=0;j<keys2.length;++j){if(keys2[j]==="__proto__")$util.makeProp(object.fields,keys2[j]);object.fields[keys2[j]]=$root.google.protobuf.Value.toObject(message.fields[keys2[j]],options)}}return object};Struct.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Struct.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Struct"};return Struct}();protobuf.Value=function(){function Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Value.prototype.nullValue=null;Value.prototype.numberValue=null;Value.prototype.stringValue=null;Value.prototype.boolValue=null;Value.prototype.structValue=null;Value.prototype.listValue=null;var $oneOfFields;Object.defineProperty(Value.prototype,"kind",{get:$util.oneOfGetter($oneOfFields=["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]),set:$util.oneOfSetter($oneOfFields)});Value.create=function create(properties){return new Value(properties)};Value.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.nullValue!=null&&Object.hasOwnProperty.call(message,"nullValue"))writer.uint32(8).int32(message.nullValue);if(message.numberValue!=null&&Object.hasOwnProperty.call(message,"numberValue"))writer.uint32(17).double(message.numberValue);if(message.stringValue!=null&&Object.hasOwnProperty.call(message,"stringValue"))writer.uint32(26).string(message.stringValue);if(message.boolValue!=null&&Object.hasOwnProperty.call(message,"boolValue"))writer.uint32(32).bool(message.boolValue);if(message.structValue!=null&&Object.hasOwnProperty.call(message,"structValue"))$root.google.protobuf.Struct.encode(message.structValue,writer.uint32(42).fork()).ldelim();if(message.listValue!=null&&Object.hasOwnProperty.call(message,"listValue"))$root.google.protobuf.ListValue.encode(message.listValue,writer.uint32(50).fork()).ldelim();return writer};Value.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Value.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.nullValue=reader.int32();break}case 2:{message.numberValue=reader.double();break}case 3:{message.stringValue=reader.string();break}case 4:{message.boolValue=reader.bool();break}case 5:{message.structValue=$root.google.protobuf.Struct.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.listValue=$root.google.protobuf.ListValue.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){properties.kind=1;switch(message.nullValue){default:return"nullValue: enum value expected";case 0:break}}if(message.numberValue!=null&&message.hasOwnProperty("numberValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;if(typeof message.numberValue!=="number")return"numberValue: number expected"}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;if(!$util.isString(message.stringValue))return"stringValue: string expected"}if(message.boolValue!=null&&message.hasOwnProperty("boolValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;if(typeof message.boolValue!=="boolean")return"boolValue: boolean expected"}if(message.structValue!=null&&message.hasOwnProperty("structValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;{var error=$root.google.protobuf.Struct.verify(message.structValue,long+1);if(error)return"structValue."+error}}if(message.listValue!=null&&message.hasOwnProperty("listValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;{var error=$root.google.protobuf.ListValue.verify(message.listValue,long+1);if(error)return"listValue."+error}}return null};Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Value;switch(object.nullValue){default:if(typeof object.nullValue==="number"){message.nullValue=object.nullValue;break}break;case"NULL_VALUE":case 0:message.nullValue=0;break}if(object.numberValue!=null)message.numberValue=Number(object.numberValue);if(object.stringValue!=null)message.stringValue=String(object.stringValue);if(object.boolValue!=null)message.boolValue=Boolean(object.boolValue);if(object.structValue!=null){if(typeof object.structValue!=="object")throw TypeError(".google.protobuf.Value.structValue: object expected");message.structValue=$root.google.protobuf.Struct.fromObject(object.structValue,long+1)}if(object.listValue!=null){if(typeof object.listValue!=="object")throw TypeError(".google.protobuf.Value.listValue: object expected");message.listValue=$root.google.protobuf.ListValue.fromObject(object.listValue,long+1)}return message};Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){object.nullValue=options.enums===String?$root.google.protobuf.NullValue[message.nullValue]===undefined?message.nullValue:$root.google.protobuf.NullValue[message.nullValue]:message.nullValue;if(options.oneofs)object.kind="nullValue"}if(message.numberValue!=null&&message.hasOwnProperty("numberValue")){object.numberValue=options.json&&!isFinite(message.numberValue)?String(message.numberValue):message.numberValue;if(options.oneofs)object.kind="numberValue"}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){object.stringValue=message.stringValue;if(options.oneofs)object.kind="stringValue"}if(message.boolValue!=null&&message.hasOwnProperty("boolValue")){object.boolValue=message.boolValue;if(options.oneofs)object.kind="boolValue"}if(message.structValue!=null&&message.hasOwnProperty("structValue")){object.structValue=$root.google.protobuf.Struct.toObject(message.structValue,options);if(options.oneofs)object.kind="structValue"}if(message.listValue!=null&&message.hasOwnProperty("listValue")){object.listValue=$root.google.protobuf.ListValue.toObject(message.listValue,options);if(options.oneofs)object.kind="listValue"}return object};Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Value"};return Value}();protobuf.NullValue=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="NULL_VALUE"]=0;return values}();protobuf.ListValue=function(){function ListValue(properties){this.values=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ListValue.prototype.values=$util.emptyArray;ListValue.create=function create(properties){return new ListValue(properties)};ListValue.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.values!=null&&message.values.length)for(var i=0;i<message.values.length;++i)$root.google.protobuf.Value.encode(message.values[i],writer.uint32(10).fork()).ldelim();return writer};ListValue.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ListValue.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ListValue;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.values&&message.values.length))message.values=[];message.values.push($root.google.protobuf.Value.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};ListValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.values!=null&&message.hasOwnProperty("values")){if(!Array.isArray(message.values))return"values: array expected";for(var i=0;i<message.values.length;++i){var error=$root.google.protobuf.Value.verify(message.values[i],long+1);if(error)return"values."+error}}return null};ListValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.ListValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ListValue;if(object.values){if(!Array.isArray(object.values))throw TypeError(".google.protobuf.ListValue.values: array expected");message.values=[];for(var i=0;i<object.values.length;++i){if(typeof object.values[i]!=="object")throw TypeError(".google.protobuf.ListValue.values: object expected");message.values[i]=$root.google.protobuf.Value.fromObject(object.values[i],long+1)}}return message};ListValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.values=[];if(message.values&&message.values.length){object.values=[];for(var j=0;j<message.values.length;++j)object.values[j]=$root.google.protobuf.Value.toObject(message.values[j],options)}return object};ListValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.ListValue"};return ListValue}();protobuf.FileDescriptorSet=function(){function FileDescriptorSet(properties){this.file=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FileDescriptorSet.prototype.file=$util.emptyArray;FileDescriptorSet.create=function create(properties){return new FileDescriptorSet(properties)};FileDescriptorSet.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.file!=null&&message.file.length)for(var i=0;i<message.file.length;++i)$root.google.protobuf.FileDescriptorProto.encode(message.file[i],writer.uint32(10).fork()).ldelim();return writer};FileDescriptorSet.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FileDescriptorSet.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FileDescriptorSet;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.file&&message.file.length))message.file=[];message.file.push($root.google.protobuf.FileDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};FileDescriptorSet.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FileDescriptorSet.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.file!=null&&message.hasOwnProperty("file")){if(!Array.isArray(message.file))return"file: array expected";for(var i=0;i<message.file.length;++i){var error=$root.google.protobuf.FileDescriptorProto.verify(message.file[i],long+1);if(error)return"file."+error}}return null};FileDescriptorSet.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FileDescriptorSet)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FileDescriptorSet;if(object.file){if(!Array.isArray(object.file))throw TypeError(".google.protobuf.FileDescriptorSet.file: array expected");message.file=[];for(var i=0;i<object.file.length;++i){if(typeof object.file[i]!=="object")throw TypeError(".google.protobuf.FileDescriptorSet.file: object expected");message.file[i]=$root.google.protobuf.FileDescriptorProto.fromObject(object.file[i],long+1)}}return message};FileDescriptorSet.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.file=[];if(message.file&&message.file.length){object.file=[];for(var j=0;j<message.file.length;++j)object.file[j]=$root.google.protobuf.FileDescriptorProto.toObject(message.file[j],options)}return object};FileDescriptorSet.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FileDescriptorSet.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FileDescriptorSet"};return FileDescriptorSet}();protobuf.Edition=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="EDITION_UNKNOWN"]=0;values[valuesById[900]="EDITION_LEGACY"]=900;values[valuesById[998]="EDITION_PROTO2"]=998;values[valuesById[999]="EDITION_PROTO3"]=999;values[valuesById[1e3]="EDITION_2023"]=1e3;values[valuesById[1001]="EDITION_2024"]=1001;values[valuesById[1002]="EDITION_2026"]=1002;values[valuesById[9999]="EDITION_UNSTABLE"]=9999;values[valuesById[1]="EDITION_1_TEST_ONLY"]=1;values[valuesById[2]="EDITION_2_TEST_ONLY"]=2;values[valuesById[99997]="EDITION_99997_TEST_ONLY"]=99997;values[valuesById[99998]="EDITION_99998_TEST_ONLY"]=99998;values[valuesById[99999]="EDITION_99999_TEST_ONLY"]=99999;values[valuesById[2147483647]="EDITION_MAX"]=2147483647;return values}();protobuf.FileDescriptorProto=function(){function FileDescriptorProto(properties){this.dependency=[];this.publicDependency=[];this.weakDependency=[];this.optionDependency=[];this.messageType=[];this.enumType=[];this.service=[];this.extension=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FileDescriptorProto.prototype.name="";FileDescriptorProto.prototype["package"]="";FileDescriptorProto.prototype.dependency=$util.emptyArray;FileDescriptorProto.prototype.publicDependency=$util.emptyArray;FileDescriptorProto.prototype.weakDependency=$util.emptyArray;FileDescriptorProto.prototype.optionDependency=$util.emptyArray;FileDescriptorProto.prototype.messageType=$util.emptyArray;FileDescriptorProto.prototype.enumType=$util.emptyArray;FileDescriptorProto.prototype.service=$util.emptyArray;FileDescriptorProto.prototype.extension=$util.emptyArray;FileDescriptorProto.prototype.options=null;FileDescriptorProto.prototype.sourceCodeInfo=null;FileDescriptorProto.prototype.syntax="";FileDescriptorProto.prototype.edition=0;FileDescriptorProto.create=function create(properties){return new FileDescriptorProto(properties)};FileDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message["package"]!=null&&Object.hasOwnProperty.call(message,"package"))writer.uint32(18).string(message["package"]);if(message.dependency!=null&&message.dependency.length)for(var i=0;i<message.dependency.length;++i)writer.uint32(26).string(message.dependency[i]);if(message.messageType!=null&&message.messageType.length)for(var i=0;i<message.messageType.length;++i)$root.google.protobuf.DescriptorProto.encode(message.messageType[i],writer.uint32(34).fork()).ldelim();if(message.enumType!=null&&message.enumType.length)for(var i=0;i<message.enumType.length;++i)$root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i],writer.uint32(42).fork()).ldelim();if(message.service!=null&&message.service.length)for(var i=0;i<message.service.length;++i)$root.google.protobuf.ServiceDescriptorProto.encode(message.service[i],writer.uint32(50).fork()).ldelim();if(message.extension!=null&&message.extension.length)for(var i=0;i<message.extension.length;++i)$root.google.protobuf.FieldDescriptorProto.encode(message.extension[i],writer.uint32(58).fork()).ldelim();if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.FileOptions.encode(message.options,writer.uint32(66).fork()).ldelim();if(message.sourceCodeInfo!=null&&Object.hasOwnProperty.call(message,"sourceCodeInfo"))$root.google.protobuf.SourceCodeInfo.encode(message.sourceCodeInfo,writer.uint32(74).fork()).ldelim();if(message.publicDependency!=null&&message.publicDependency.length)for(var i=0;i<message.publicDependency.length;++i)writer.uint32(80).int32(message.publicDependency[i]);if(message.weakDependency!=null&&message.weakDependency.length)for(var i=0;i<message.weakDependency.length;++i)writer.uint32(88).int32(message.weakDependency[i]);if(message.syntax!=null&&Object.hasOwnProperty.call(message,"syntax"))writer.uint32(98).string(message.syntax);if(message.edition!=null&&Object.hasOwnProperty.call(message,"edition"))writer.uint32(112).int32(message.edition);if(message.optionDependency!=null&&message.optionDependency.length)for(var i=0;i<message.optionDependency.length;++i)writer.uint32(122).string(message.optionDependency[i]);return writer};FileDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FileDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FileDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{message["package"]=reader.string();break}case 3:{if(!(message.dependency&&message.dependency.length))message.dependency=[];message.dependency.push(reader.string());break}case 10:{if(!(message.publicDependency&&message.publicDependency.length))message.publicDependency=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.publicDependency.push(reader.int32())}else message.publicDependency.push(reader.int32());break}case 11:{if(!(message.weakDependency&&message.weakDependency.length))message.weakDependency=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.weakDependency.push(reader.int32())}else message.weakDependency.push(reader.int32());break}case 15:{if(!(message.optionDependency&&message.optionDependency.length))message.optionDependency=[];message.optionDependency.push(reader.string());break}case 4:{if(!(message.messageType&&message.messageType.length))message.messageType=[];message.messageType.push($root.google.protobuf.DescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{if(!(message.enumType&&message.enumType.length))message.enumType=[];message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 6:{if(!(message.service&&message.service.length))message.service=[];message.service.push($root.google.protobuf.ServiceDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 7:{if(!(message.extension&&message.extension.length))message.extension=[];message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 8:{message.options=$root.google.protobuf.FileOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.sourceCodeInfo=$root.google.protobuf.SourceCodeInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 12:{message.syntax=reader.string();break}case 14:{message.edition=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FileDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FileDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message["package"]!=null&&message.hasOwnProperty("package"))if(!$util.isString(message["package"]))return"package: string expected";if(message.dependency!=null&&message.hasOwnProperty("dependency")){if(!Array.isArray(message.dependency))return"dependency: array expected";for(var i=0;i<message.dependency.length;++i)if(!$util.isString(message.dependency[i]))return"dependency: string[] expected"}if(message.publicDependency!=null&&message.hasOwnProperty("publicDependency")){if(!Array.isArray(message.publicDependency))return"publicDependency: array expected";for(var i=0;i<message.publicDependency.length;++i)if(!$util.isInteger(message.publicDependency[i]))return"publicDependency: integer[] expected"}if(message.weakDependency!=null&&message.hasOwnProperty("weakDependency")){if(!Array.isArray(message.weakDependency))return"weakDependency: array expected";for(var i=0;i<message.weakDependency.length;++i)if(!$util.isInteger(message.weakDependency[i]))return"weakDependency: integer[] expected"}if(message.optionDependency!=null&&message.hasOwnProperty("optionDependency")){if(!Array.isArray(message.optionDependency))return"optionDependency: array expected";for(var i=0;i<message.optionDependency.length;++i)if(!$util.isString(message.optionDependency[i]))return"optionDependency: string[] expected"}if(message.messageType!=null&&message.hasOwnProperty("messageType")){if(!Array.isArray(message.messageType))return"messageType: array expected";for(var i=0;i<message.messageType.length;++i){var error=$root.google.protobuf.DescriptorProto.verify(message.messageType[i],long+1);if(error)return"messageType."+error}}if(message.enumType!=null&&message.hasOwnProperty("enumType")){if(!Array.isArray(message.enumType))return"enumType: array expected";for(var i=0;i<message.enumType.length;++i){var error=$root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i],long+1);if(error)return"enumType."+error}}if(message.service!=null&&message.hasOwnProperty("service")){if(!Array.isArray(message.service))return"service: array expected";for(var i=0;i<message.service.length;++i){var error=$root.google.protobuf.ServiceDescriptorProto.verify(message.service[i],long+1);if(error)return"service."+error}}if(message.extension!=null&&message.hasOwnProperty("extension")){if(!Array.isArray(message.extension))return"extension: array expected";for(var i=0;i<message.extension.length;++i){var error=$root.google.protobuf.FieldDescriptorProto.verify(message.extension[i],long+1);if(error)return"extension."+error}}if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.FileOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.sourceCodeInfo!=null&&message.hasOwnProperty("sourceCodeInfo")){var error=$root.google.protobuf.SourceCodeInfo.verify(message.sourceCodeInfo,long+1);if(error)return"sourceCodeInfo."+error}if(message.syntax!=null&&message.hasOwnProperty("syntax"))if(!$util.isString(message.syntax))return"syntax: string expected";if(message.edition!=null&&message.hasOwnProperty("edition"))switch(message.edition){default:return"edition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}return null};FileDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FileDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FileDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object["package"]!=null)message["package"]=String(object["package"]);if(object.dependency){if(!Array.isArray(object.dependency))throw TypeError(".google.protobuf.FileDescriptorProto.dependency: array expected");message.dependency=[];for(var i=0;i<object.dependency.length;++i)message.dependency[i]=String(object.dependency[i])}if(object.publicDependency){if(!Array.isArray(object.publicDependency))throw TypeError(".google.protobuf.FileDescriptorProto.publicDependency: array expected");message.publicDependency=[];for(var i=0;i<object.publicDependency.length;++i)message.publicDependency[i]=object.publicDependency[i]|0}if(object.weakDependency){if(!Array.isArray(object.weakDependency))throw TypeError(".google.protobuf.FileDescriptorProto.weakDependency: array expected");message.weakDependency=[];for(var i=0;i<object.weakDependency.length;++i)message.weakDependency[i]=object.weakDependency[i]|0}if(object.optionDependency){if(!Array.isArray(object.optionDependency))throw TypeError(".google.protobuf.FileDescriptorProto.optionDependency: array expected");message.optionDependency=[];for(var i=0;i<object.optionDependency.length;++i)message.optionDependency[i]=String(object.optionDependency[i])}if(object.messageType){if(!Array.isArray(object.messageType))throw TypeError(".google.protobuf.FileDescriptorProto.messageType: array expected");message.messageType=[];for(var i=0;i<object.messageType.length;++i){if(typeof object.messageType[i]!=="object")throw TypeError(".google.protobuf.FileDescriptorProto.messageType: object expected");message.messageType[i]=$root.google.protobuf.DescriptorProto.fromObject(object.messageType[i],long+1)}}if(object.enumType){if(!Array.isArray(object.enumType))throw TypeError(".google.protobuf.FileDescriptorProto.enumType: array expected");message.enumType=[];for(var i=0;i<object.enumType.length;++i){if(typeof object.enumType[i]!=="object")throw TypeError(".google.protobuf.FileDescriptorProto.enumType: object expected");message.enumType[i]=$root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i],long+1)}}if(object.service){if(!Array.isArray(object.service))throw TypeError(".google.protobuf.FileDescriptorProto.service: array expected");message.service=[];for(var i=0;i<object.service.length;++i){if(typeof object.service[i]!=="object")throw TypeError(".google.protobuf.FileDescriptorProto.service: object expected");message.service[i]=$root.google.protobuf.ServiceDescriptorProto.fromObject(object.service[i],long+1)}}if(object.extension){if(!Array.isArray(object.extension))throw TypeError(".google.protobuf.FileDescriptorProto.extension: array expected");message.extension=[];for(var i=0;i<object.extension.length;++i){if(typeof object.extension[i]!=="object")throw TypeError(".google.protobuf.FileDescriptorProto.extension: object expected");message.extension[i]=$root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i],long+1)}}if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.FileDescriptorProto.options: object expected");message.options=$root.google.protobuf.FileOptions.fromObject(object.options,long+1)}if(object.sourceCodeInfo!=null){if(typeof object.sourceCodeInfo!=="object")throw TypeError(".google.protobuf.FileDescriptorProto.sourceCodeInfo: object expected");message.sourceCodeInfo=$root.google.protobuf.SourceCodeInfo.fromObject(object.sourceCodeInfo,long+1)}if(object.syntax!=null)message.syntax=String(object.syntax);switch(object.edition){default:if(typeof object.edition==="number"){message.edition=object.edition;break}break;case"EDITION_UNKNOWN":case 0:message.edition=0;break;case"EDITION_LEGACY":case 900:message.edition=900;break;case"EDITION_PROTO2":case 998:message.edition=998;break;case"EDITION_PROTO3":case 999:message.edition=999;break;case"EDITION_2023":case 1e3:message.edition=1e3;break;case"EDITION_2024":case 1001:message.edition=1001;break;case"EDITION_2026":case 1002:message.edition=1002;break;case"EDITION_UNSTABLE":case 9999:message.edition=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.edition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.edition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.edition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.edition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.edition=99999;break;case"EDITION_MAX":case 2147483647:message.edition=2147483647;break}return message};FileDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.dependency=[];object.messageType=[];object.enumType=[];object.service=[];object.extension=[];object.publicDependency=[];object.weakDependency=[];object.optionDependency=[]}if(options.defaults){object.name="";object["package"]="";object.options=null;object.sourceCodeInfo=null;object.syntax="";object.edition=options.enums===String?"EDITION_UNKNOWN":0}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message["package"]!=null&&message.hasOwnProperty("package"))object["package"]=message["package"];if(message.dependency&&message.dependency.length){object.dependency=[];for(var j=0;j<message.dependency.length;++j)object.dependency[j]=message.dependency[j]}if(message.messageType&&message.messageType.length){object.messageType=[];for(var j=0;j<message.messageType.length;++j)object.messageType[j]=$root.google.protobuf.DescriptorProto.toObject(message.messageType[j],options)}if(message.enumType&&message.enumType.length){object.enumType=[];for(var j=0;j<message.enumType.length;++j)object.enumType[j]=$root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j],options)}if(message.service&&message.service.length){object.service=[];for(var j=0;j<message.service.length;++j)object.service[j]=$root.google.protobuf.ServiceDescriptorProto.toObject(message.service[j],options)}if(message.extension&&message.extension.length){object.extension=[];for(var j=0;j<message.extension.length;++j)object.extension[j]=$root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j],options)}if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.FileOptions.toObject(message.options,options);if(message.sourceCodeInfo!=null&&message.hasOwnProperty("sourceCodeInfo"))object.sourceCodeInfo=$root.google.protobuf.SourceCodeInfo.toObject(message.sourceCodeInfo,options);if(message.publicDependency&&message.publicDependency.length){object.publicDependency=[];for(var j=0;j<message.publicDependency.length;++j)object.publicDependency[j]=message.publicDependency[j]}if(message.weakDependency&&message.weakDependency.length){object.weakDependency=[];for(var j=0;j<message.weakDependency.length;++j)object.weakDependency[j]=message.weakDependency[j]}if(message.syntax!=null&&message.hasOwnProperty("syntax"))object.syntax=message.syntax;if(message.edition!=null&&message.hasOwnProperty("edition"))object.edition=options.enums===String?$root.google.protobuf.Edition[message.edition]===undefined?message.edition:$root.google.protobuf.Edition[message.edition]:message.edition;if(message.optionDependency&&message.optionDependency.length){object.optionDependency=[];for(var j=0;j<message.optionDependency.length;++j)object.optionDependency[j]=message.optionDependency[j]}return object};FileDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FileDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FileDescriptorProto"};return FileDescriptorProto}();protobuf.DescriptorProto=function(){function DescriptorProto(properties){this.field=[];this.extension=[];this.nestedType=[];this.enumType=[];this.extensionRange=[];this.oneofDecl=[];this.reservedRange=[];this.reservedName=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}DescriptorProto.prototype.name="";DescriptorProto.prototype.field=$util.emptyArray;DescriptorProto.prototype.extension=$util.emptyArray;DescriptorProto.prototype.nestedType=$util.emptyArray;DescriptorProto.prototype.enumType=$util.emptyArray;DescriptorProto.prototype.extensionRange=$util.emptyArray;DescriptorProto.prototype.oneofDecl=$util.emptyArray;DescriptorProto.prototype.options=null;DescriptorProto.prototype.reservedRange=$util.emptyArray;DescriptorProto.prototype.reservedName=$util.emptyArray;DescriptorProto.prototype.visibility=0;DescriptorProto.create=function create(properties){return new DescriptorProto(properties)};DescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.field!=null&&message.field.length)for(var i=0;i<message.field.length;++i)$root.google.protobuf.FieldDescriptorProto.encode(message.field[i],writer.uint32(18).fork()).ldelim();if(message.nestedType!=null&&message.nestedType.length)for(var i=0;i<message.nestedType.length;++i)$root.google.protobuf.DescriptorProto.encode(message.nestedType[i],writer.uint32(26).fork()).ldelim();if(message.enumType!=null&&message.enumType.length)for(var i=0;i<message.enumType.length;++i)$root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i],writer.uint32(34).fork()).ldelim();if(message.extensionRange!=null&&message.extensionRange.length)for(var i=0;i<message.extensionRange.length;++i)$root.google.protobuf.DescriptorProto.ExtensionRange.encode(message.extensionRange[i],writer.uint32(42).fork()).ldelim();if(message.extension!=null&&message.extension.length)for(var i=0;i<message.extension.length;++i)$root.google.protobuf.FieldDescriptorProto.encode(message.extension[i],writer.uint32(50).fork()).ldelim();if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.MessageOptions.encode(message.options,writer.uint32(58).fork()).ldelim();if(message.oneofDecl!=null&&message.oneofDecl.length)for(var i=0;i<message.oneofDecl.length;++i)$root.google.protobuf.OneofDescriptorProto.encode(message.oneofDecl[i],writer.uint32(66).fork()).ldelim();if(message.reservedRange!=null&&message.reservedRange.length)for(var i=0;i<message.reservedRange.length;++i)$root.google.protobuf.DescriptorProto.ReservedRange.encode(message.reservedRange[i],writer.uint32(74).fork()).ldelim();if(message.reservedName!=null&&message.reservedName.length)for(var i=0;i<message.reservedName.length;++i)writer.uint32(82).string(message.reservedName[i]);if(message.visibility!=null&&Object.hasOwnProperty.call(message,"visibility"))writer.uint32(88).int32(message.visibility);return writer};DescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};DescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.field&&message.field.length))message.field=[];message.field.push($root.google.protobuf.FieldDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 6:{if(!(message.extension&&message.extension.length))message.extension=[];message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(!(message.nestedType&&message.nestedType.length))message.nestedType=[];message.nestedType.push($root.google.protobuf.DescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{if(!(message.enumType&&message.enumType.length))message.enumType=[];message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{if(!(message.extensionRange&&message.extensionRange.length))message.extensionRange=[];message.extensionRange.push($root.google.protobuf.DescriptorProto.ExtensionRange.decode(reader,reader.uint32(),undefined,long+1));break}case 8:{if(!(message.oneofDecl&&message.oneofDecl.length))message.oneofDecl=[];message.oneofDecl.push($root.google.protobuf.OneofDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 7:{message.options=$root.google.protobuf.MessageOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{if(!(message.reservedRange&&message.reservedRange.length))message.reservedRange=[];message.reservedRange.push($root.google.protobuf.DescriptorProto.ReservedRange.decode(reader,reader.uint32(),undefined,long+1));break}case 10:{if(!(message.reservedName&&message.reservedName.length))message.reservedName=[];message.reservedName.push(reader.string());break}case 11:{message.visibility=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};DescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.field!=null&&message.hasOwnProperty("field")){if(!Array.isArray(message.field))return"field: array expected";for(var i=0;i<message.field.length;++i){var error=$root.google.protobuf.FieldDescriptorProto.verify(message.field[i],long+1);if(error)return"field."+error}}if(message.extension!=null&&message.hasOwnProperty("extension")){if(!Array.isArray(message.extension))return"extension: array expected";for(var i=0;i<message.extension.length;++i){var error=$root.google.protobuf.FieldDescriptorProto.verify(message.extension[i],long+1);if(error)return"extension."+error}}if(message.nestedType!=null&&message.hasOwnProperty("nestedType")){if(!Array.isArray(message.nestedType))return"nestedType: array expected";for(var i=0;i<message.nestedType.length;++i){var error=$root.google.protobuf.DescriptorProto.verify(message.nestedType[i],long+1);if(error)return"nestedType."+error}}if(message.enumType!=null&&message.hasOwnProperty("enumType")){if(!Array.isArray(message.enumType))return"enumType: array expected";for(var i=0;i<message.enumType.length;++i){var error=$root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i],long+1);if(error)return"enumType."+error}}if(message.extensionRange!=null&&message.hasOwnProperty("extensionRange")){if(!Array.isArray(message.extensionRange))return"extensionRange: array expected";for(var i=0;i<message.extensionRange.length;++i){var error=$root.google.protobuf.DescriptorProto.ExtensionRange.verify(message.extensionRange[i],long+1);if(error)return"extensionRange."+error}}if(message.oneofDecl!=null&&message.hasOwnProperty("oneofDecl")){if(!Array.isArray(message.oneofDecl))return"oneofDecl: array expected";for(var i=0;i<message.oneofDecl.length;++i){var error=$root.google.protobuf.OneofDescriptorProto.verify(message.oneofDecl[i],long+1);if(error)return"oneofDecl."+error}}if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.MessageOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.reservedRange!=null&&message.hasOwnProperty("reservedRange")){if(!Array.isArray(message.reservedRange))return"reservedRange: array expected";for(var i=0;i<message.reservedRange.length;++i){var error=$root.google.protobuf.DescriptorProto.ReservedRange.verify(message.reservedRange[i],long+1);if(error)return"reservedRange."+error}}if(message.reservedName!=null&&message.hasOwnProperty("reservedName")){if(!Array.isArray(message.reservedName))return"reservedName: array expected";for(var i=0;i<message.reservedName.length;++i)if(!$util.isString(message.reservedName[i]))return"reservedName: string[] expected"}if(message.visibility!=null&&message.hasOwnProperty("visibility"))switch(message.visibility){default:return"visibility: enum value expected";case 0:case 1:case 2:break}return null};DescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.field){if(!Array.isArray(object.field))throw TypeError(".google.protobuf.DescriptorProto.field: array expected");message.field=[];for(var i=0;i<object.field.length;++i){if(typeof object.field[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.field: object expected");message.field[i]=$root.google.protobuf.FieldDescriptorProto.fromObject(object.field[i],long+1)}}if(object.extension){if(!Array.isArray(object.extension))throw TypeError(".google.protobuf.DescriptorProto.extension: array expected");message.extension=[];for(var i=0;i<object.extension.length;++i){if(typeof object.extension[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.extension: object expected");message.extension[i]=$root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i],long+1)}}if(object.nestedType){if(!Array.isArray(object.nestedType))throw TypeError(".google.protobuf.DescriptorProto.nestedType: array expected");message.nestedType=[];for(var i=0;i<object.nestedType.length;++i){if(typeof object.nestedType[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.nestedType: object expected");message.nestedType[i]=$root.google.protobuf.DescriptorProto.fromObject(object.nestedType[i],long+1)}}if(object.enumType){if(!Array.isArray(object.enumType))throw TypeError(".google.protobuf.DescriptorProto.enumType: array expected");message.enumType=[];for(var i=0;i<object.enumType.length;++i){if(typeof object.enumType[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.enumType: object expected");message.enumType[i]=$root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i],long+1)}}if(object.extensionRange){if(!Array.isArray(object.extensionRange))throw TypeError(".google.protobuf.DescriptorProto.extensionRange: array expected");message.extensionRange=[];for(var i=0;i<object.extensionRange.length;++i){if(typeof object.extensionRange[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.extensionRange: object expected");message.extensionRange[i]=$root.google.protobuf.DescriptorProto.ExtensionRange.fromObject(object.extensionRange[i],long+1)}}if(object.oneofDecl){if(!Array.isArray(object.oneofDecl))throw TypeError(".google.protobuf.DescriptorProto.oneofDecl: array expected");message.oneofDecl=[];for(var i=0;i<object.oneofDecl.length;++i){if(typeof object.oneofDecl[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.oneofDecl: object expected");message.oneofDecl[i]=$root.google.protobuf.OneofDescriptorProto.fromObject(object.oneofDecl[i],long+1)}}if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.DescriptorProto.options: object expected");message.options=$root.google.protobuf.MessageOptions.fromObject(object.options,long+1)}if(object.reservedRange){if(!Array.isArray(object.reservedRange))throw TypeError(".google.protobuf.DescriptorProto.reservedRange: array expected");message.reservedRange=[];for(var i=0;i<object.reservedRange.length;++i){if(typeof object.reservedRange[i]!=="object")throw TypeError(".google.protobuf.DescriptorProto.reservedRange: object expected");message.reservedRange[i]=$root.google.protobuf.DescriptorProto.ReservedRange.fromObject(object.reservedRange[i],long+1)}}if(object.reservedName){if(!Array.isArray(object.reservedName))throw TypeError(".google.protobuf.DescriptorProto.reservedName: array expected");message.reservedName=[];for(var i=0;i<object.reservedName.length;++i)message.reservedName[i]=String(object.reservedName[i])}switch(object.visibility){default:if(typeof object.visibility==="number"){message.visibility=object.visibility;break}break;case"VISIBILITY_UNSET":case 0:message.visibility=0;break;case"VISIBILITY_LOCAL":case 1:message.visibility=1;break;case"VISIBILITY_EXPORT":case 2:message.visibility=2;break}return message};DescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.field=[];object.nestedType=[];object.enumType=[];object.extensionRange=[];object.extension=[];object.oneofDecl=[];object.reservedRange=[];object.reservedName=[]}if(options.defaults){object.name="";object.options=null;object.visibility=options.enums===String?"VISIBILITY_UNSET":0}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.field&&message.field.length){object.field=[];for(var j=0;j<message.field.length;++j)object.field[j]=$root.google.protobuf.FieldDescriptorProto.toObject(message.field[j],options)}if(message.nestedType&&message.nestedType.length){object.nestedType=[];for(var j=0;j<message.nestedType.length;++j)object.nestedType[j]=$root.google.protobuf.DescriptorProto.toObject(message.nestedType[j],options)}if(message.enumType&&message.enumType.length){object.enumType=[];for(var j=0;j<message.enumType.length;++j)object.enumType[j]=$root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j],options)}if(message.extensionRange&&message.extensionRange.length){object.extensionRange=[];for(var j=0;j<message.extensionRange.length;++j)object.extensionRange[j]=$root.google.protobuf.DescriptorProto.ExtensionRange.toObject(message.extensionRange[j],options)}if(message.extension&&message.extension.length){object.extension=[];for(var j=0;j<message.extension.length;++j)object.extension[j]=$root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j],options)}if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.MessageOptions.toObject(message.options,options);if(message.oneofDecl&&message.oneofDecl.length){object.oneofDecl=[];for(var j=0;j<message.oneofDecl.length;++j)object.oneofDecl[j]=$root.google.protobuf.OneofDescriptorProto.toObject(message.oneofDecl[j],options)}if(message.reservedRange&&message.reservedRange.length){object.reservedRange=[];for(var j=0;j<message.reservedRange.length;++j)object.reservedRange[j]=$root.google.protobuf.DescriptorProto.ReservedRange.toObject(message.reservedRange[j],options)}if(message.reservedName&&message.reservedName.length){object.reservedName=[];for(var j=0;j<message.reservedName.length;++j)object.reservedName[j]=message.reservedName[j]}if(message.visibility!=null&&message.hasOwnProperty("visibility"))object.visibility=options.enums===String?$root.google.protobuf.SymbolVisibility[message.visibility]===undefined?message.visibility:$root.google.protobuf.SymbolVisibility[message.visibility]:message.visibility;return object};DescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DescriptorProto"};DescriptorProto.ExtensionRange=function(){function ExtensionRange(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ExtensionRange.prototype.start=0;ExtensionRange.prototype.end=0;ExtensionRange.prototype.options=null;ExtensionRange.create=function create(properties){return new ExtensionRange(properties)};ExtensionRange.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.start!=null&&Object.hasOwnProperty.call(message,"start"))writer.uint32(8).int32(message.start);if(message.end!=null&&Object.hasOwnProperty.call(message,"end"))writer.uint32(16).int32(message.end);if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.ExtensionRangeOptions.encode(message.options,writer.uint32(26).fork()).ldelim();return writer};ExtensionRange.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ExtensionRange.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DescriptorProto.ExtensionRange;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.start=reader.int32();break}case 2:{message.end=reader.int32();break}case 3:{message.options=$root.google.protobuf.ExtensionRangeOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExtensionRange.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExtensionRange.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.start!=null&&message.hasOwnProperty("start"))if(!$util.isInteger(message.start))return"start: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.ExtensionRangeOptions.verify(message.options,long+1);if(error)return"options."+error}return null};ExtensionRange.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DescriptorProto.ExtensionRange)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DescriptorProto.ExtensionRange;if(object.start!=null)message.start=object.start|0;if(object.end!=null)message.end=object.end|0;if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.DescriptorProto.ExtensionRange.options: object expected");message.options=$root.google.protobuf.ExtensionRangeOptions.fromObject(object.options,long+1)}return message};ExtensionRange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.start=0;object.end=0;object.options=null}if(message.start!=null&&message.hasOwnProperty("start"))object.start=message.start;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.ExtensionRangeOptions.toObject(message.options,options);return object};ExtensionRange.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExtensionRange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DescriptorProto.ExtensionRange"};return ExtensionRange}();DescriptorProto.ReservedRange=function(){function ReservedRange(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ReservedRange.prototype.start=0;ReservedRange.prototype.end=0;ReservedRange.create=function create(properties){return new ReservedRange(properties)};ReservedRange.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.start!=null&&Object.hasOwnProperty.call(message,"start"))writer.uint32(8).int32(message.start);if(message.end!=null&&Object.hasOwnProperty.call(message,"end"))writer.uint32(16).int32(message.end);return writer};ReservedRange.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ReservedRange.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DescriptorProto.ReservedRange;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.start=reader.int32();break}case 2:{message.end=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};ReservedRange.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ReservedRange.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.start!=null&&message.hasOwnProperty("start"))if(!$util.isInteger(message.start))return"start: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";return null};ReservedRange.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DescriptorProto.ReservedRange)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DescriptorProto.ReservedRange;if(object.start!=null)message.start=object.start|0;if(object.end!=null)message.end=object.end|0;return message};ReservedRange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.start=0;object.end=0}if(message.start!=null&&message.hasOwnProperty("start"))object.start=message.start;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;return object};ReservedRange.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ReservedRange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DescriptorProto.ReservedRange"};return ReservedRange}();return DescriptorProto}();protobuf.ExtensionRangeOptions=function(){function ExtensionRangeOptions(properties){this.uninterpretedOption=[];this.declaration=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ExtensionRangeOptions.prototype.uninterpretedOption=$util.emptyArray;ExtensionRangeOptions.prototype.declaration=$util.emptyArray;ExtensionRangeOptions.prototype.features=null;ExtensionRangeOptions.prototype.verification=1;ExtensionRangeOptions.create=function create(properties){return new ExtensionRangeOptions(properties)};ExtensionRangeOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.declaration!=null&&message.declaration.length)for(var i=0;i<message.declaration.length;++i)$root.google.protobuf.ExtensionRangeOptions.Declaration.encode(message.declaration[i],writer.uint32(18).fork()).ldelim();if(message.verification!=null&&Object.hasOwnProperty.call(message,"verification"))writer.uint32(24).int32(message.verification);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(402).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();return writer};ExtensionRangeOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ExtensionRangeOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ExtensionRangeOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{if(!(message.declaration&&message.declaration.length))message.declaration=[];message.declaration.push($root.google.protobuf.ExtensionRangeOptions.Declaration.decode(reader,reader.uint32(),undefined,long+1));break}case 50:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.verification=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};ExtensionRangeOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExtensionRangeOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}if(message.declaration!=null&&message.hasOwnProperty("declaration")){if(!Array.isArray(message.declaration))return"declaration: array expected";for(var i=0;i<message.declaration.length;++i){var error=$root.google.protobuf.ExtensionRangeOptions.Declaration.verify(message.declaration[i],long+1);if(error)return"declaration."+error}}if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.verification!=null&&message.hasOwnProperty("verification"))switch(message.verification){default:return"verification: enum value expected";case 0:case 1:break}return null};ExtensionRangeOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.ExtensionRangeOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ExtensionRangeOptions;if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}if(object.declaration){if(!Array.isArray(object.declaration))throw TypeError(".google.protobuf.ExtensionRangeOptions.declaration: array expected");message.declaration=[];for(var i=0;i<object.declaration.length;++i){if(typeof object.declaration[i]!=="object")throw TypeError(".google.protobuf.ExtensionRangeOptions.declaration: object expected");message.declaration[i]=$root.google.protobuf.ExtensionRangeOptions.Declaration.fromObject(object.declaration[i],long+1)}}if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.ExtensionRangeOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}switch(object.verification){case"DECLARATION":case 0:message.verification=0;break;default:if(typeof object.verification==="number"){message.verification=object.verification;break}break;case"UNVERIFIED":case 1:message.verification=1;break}return message};ExtensionRangeOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.declaration=[];object.uninterpretedOption=[]}if(options.defaults){object.verification=options.enums===String?"UNVERIFIED":1;object.features=null}if(message.declaration&&message.declaration.length){object.declaration=[];for(var j=0;j<message.declaration.length;++j)object.declaration[j]=$root.google.protobuf.ExtensionRangeOptions.Declaration.toObject(message.declaration[j],options)}if(message.verification!=null&&message.hasOwnProperty("verification"))object.verification=options.enums===String?$root.google.protobuf.ExtensionRangeOptions.VerificationState[message.verification]===undefined?message.verification:$root.google.protobuf.ExtensionRangeOptions.VerificationState[message.verification]:message.verification;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}return object};ExtensionRangeOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExtensionRangeOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.ExtensionRangeOptions"};ExtensionRangeOptions.Declaration=function(){function Declaration(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Declaration.prototype.number=0;Declaration.prototype.fullName="";Declaration.prototype.type="";Declaration.prototype.reserved=false;Declaration.prototype.repeated=false;Declaration.create=function create(properties){return new Declaration(properties)};Declaration.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.number!=null&&Object.hasOwnProperty.call(message,"number"))writer.uint32(8).int32(message.number);if(message.fullName!=null&&Object.hasOwnProperty.call(message,"fullName"))writer.uint32(18).string(message.fullName);if(message.type!=null&&Object.hasOwnProperty.call(message,"type"))writer.uint32(26).string(message.type);if(message.reserved!=null&&Object.hasOwnProperty.call(message,"reserved"))writer.uint32(40).bool(message.reserved);if(message.repeated!=null&&Object.hasOwnProperty.call(message,"repeated"))writer.uint32(48).bool(message.repeated);return writer};Declaration.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Declaration.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ExtensionRangeOptions.Declaration;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.number=reader.int32();break}case 2:{message.fullName=reader.string();break}case 3:{message.type=reader.string();break}case 5:{message.reserved=reader.bool();break}case 6:{message.repeated=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Declaration.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Declaration.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.number!=null&&message.hasOwnProperty("number"))if(!$util.isInteger(message.number))return"number: integer expected";if(message.fullName!=null&&message.hasOwnProperty("fullName"))if(!$util.isString(message.fullName))return"fullName: string expected";if(message.type!=null&&message.hasOwnProperty("type"))if(!$util.isString(message.type))return"type: string expected";if(message.reserved!=null&&message.hasOwnProperty("reserved"))if(typeof message.reserved!=="boolean")return"reserved: boolean expected";if(message.repeated!=null&&message.hasOwnProperty("repeated"))if(typeof message.repeated!=="boolean")return"repeated: boolean expected";return null};Declaration.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.ExtensionRangeOptions.Declaration)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ExtensionRangeOptions.Declaration;if(object.number!=null)message.number=object.number|0;if(object.fullName!=null)message.fullName=String(object.fullName);if(object.type!=null)message.type=String(object.type);if(object.reserved!=null)message.reserved=Boolean(object.reserved);if(object.repeated!=null)message.repeated=Boolean(object.repeated);return message};Declaration.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.number=0;object.fullName="";object.type="";object.reserved=false;object.repeated=false}if(message.number!=null&&message.hasOwnProperty("number"))object.number=message.number;if(message.fullName!=null&&message.hasOwnProperty("fullName"))object.fullName=message.fullName;if(message.type!=null&&message.hasOwnProperty("type"))object.type=message.type;if(message.reserved!=null&&message.hasOwnProperty("reserved"))object.reserved=message.reserved;if(message.repeated!=null&&message.hasOwnProperty("repeated"))object.repeated=message.repeated;return object};Declaration.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Declaration.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.ExtensionRangeOptions.Declaration"};return Declaration}();ExtensionRangeOptions.VerificationState=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DECLARATION"]=0;values[valuesById[1]="UNVERIFIED"]=1;return values}();return ExtensionRangeOptions}();protobuf.FieldDescriptorProto=function(){function FieldDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FieldDescriptorProto.prototype.name="";FieldDescriptorProto.prototype.number=0;FieldDescriptorProto.prototype.label=1;FieldDescriptorProto.prototype.type=1;FieldDescriptorProto.prototype.typeName="";FieldDescriptorProto.prototype.extendee="";FieldDescriptorProto.prototype.defaultValue="";FieldDescriptorProto.prototype.oneofIndex=0;FieldDescriptorProto.prototype.jsonName="";FieldDescriptorProto.prototype.options=null;FieldDescriptorProto.prototype.proto3Optional=false;FieldDescriptorProto.create=function create(properties){return new FieldDescriptorProto(properties)};FieldDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.extendee!=null&&Object.hasOwnProperty.call(message,"extendee"))writer.uint32(18).string(message.extendee);if(message.number!=null&&Object.hasOwnProperty.call(message,"number"))writer.uint32(24).int32(message.number);if(message.label!=null&&Object.hasOwnProperty.call(message,"label"))writer.uint32(32).int32(message.label);if(message.type!=null&&Object.hasOwnProperty.call(message,"type"))writer.uint32(40).int32(message.type);if(message.typeName!=null&&Object.hasOwnProperty.call(message,"typeName"))writer.uint32(50).string(message.typeName);if(message.defaultValue!=null&&Object.hasOwnProperty.call(message,"defaultValue"))writer.uint32(58).string(message.defaultValue);if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.FieldOptions.encode(message.options,writer.uint32(66).fork()).ldelim();if(message.oneofIndex!=null&&Object.hasOwnProperty.call(message,"oneofIndex"))writer.uint32(72).int32(message.oneofIndex);if(message.jsonName!=null&&Object.hasOwnProperty.call(message,"jsonName"))writer.uint32(82).string(message.jsonName);if(message.proto3Optional!=null&&Object.hasOwnProperty.call(message,"proto3Optional"))writer.uint32(136).bool(message.proto3Optional);return writer};FieldDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FieldDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 3:{message.number=reader.int32();break}case 4:{message.label=reader.int32();break}case 5:{message.type=reader.int32();break}case 6:{message.typeName=reader.string();break}case 2:{message.extendee=reader.string();break}case 7:{message.defaultValue=reader.string();break}case 9:{message.oneofIndex=reader.int32();break}case 10:{message.jsonName=reader.string();break}case 8:{message.options=$root.google.protobuf.FieldOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 17:{message.proto3Optional=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};FieldDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.number!=null&&message.hasOwnProperty("number"))if(!$util.isInteger(message.number))return"number: integer expected";if(message.label!=null&&message.hasOwnProperty("label"))switch(message.label){default:return"label: enum value expected";case 1:case 3:case 2:break}if(message.type!=null&&message.hasOwnProperty("type"))switch(message.type){default:return"type: enum value expected";case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:break}if(message.typeName!=null&&message.hasOwnProperty("typeName"))if(!$util.isString(message.typeName))return"typeName: string expected";if(message.extendee!=null&&message.hasOwnProperty("extendee"))if(!$util.isString(message.extendee))return"extendee: string expected";if(message.defaultValue!=null&&message.hasOwnProperty("defaultValue"))if(!$util.isString(message.defaultValue))return"defaultValue: string expected";if(message.oneofIndex!=null&&message.hasOwnProperty("oneofIndex"))if(!$util.isInteger(message.oneofIndex))return"oneofIndex: integer expected";if(message.jsonName!=null&&message.hasOwnProperty("jsonName"))if(!$util.isString(message.jsonName))return"jsonName: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.FieldOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.proto3Optional!=null&&message.hasOwnProperty("proto3Optional"))if(typeof message.proto3Optional!=="boolean")return"proto3Optional: boolean expected";return null};FieldDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.number!=null)message.number=object.number|0;switch(object.label){default:if(typeof object.label==="number"){message.label=object.label;break}break;case"LABEL_OPTIONAL":case 1:message.label=1;break;case"LABEL_REPEATED":case 3:message.label=3;break;case"LABEL_REQUIRED":case 2:message.label=2;break}switch(object.type){default:if(typeof object.type==="number"){message.type=object.type;break}break;case"TYPE_DOUBLE":case 1:message.type=1;break;case"TYPE_FLOAT":case 2:message.type=2;break;case"TYPE_INT64":case 3:message.type=3;break;case"TYPE_UINT64":case 4:message.type=4;break;case"TYPE_INT32":case 5:message.type=5;break;case"TYPE_FIXED64":case 6:message.type=6;break;case"TYPE_FIXED32":case 7:message.type=7;break;case"TYPE_BOOL":case 8:message.type=8;break;case"TYPE_STRING":case 9:message.type=9;break;case"TYPE_GROUP":case 10:message.type=10;break;case"TYPE_MESSAGE":case 11:message.type=11;break;case"TYPE_BYTES":case 12:message.type=12;break;case"TYPE_UINT32":case 13:message.type=13;break;case"TYPE_ENUM":case 14:message.type=14;break;case"TYPE_SFIXED32":case 15:message.type=15;break;case"TYPE_SFIXED64":case 16:message.type=16;break;case"TYPE_SINT32":case 17:message.type=17;break;case"TYPE_SINT64":case 18:message.type=18;break}if(object.typeName!=null)message.typeName=String(object.typeName);if(object.extendee!=null)message.extendee=String(object.extendee);if(object.defaultValue!=null)message.defaultValue=String(object.defaultValue);if(object.oneofIndex!=null)message.oneofIndex=object.oneofIndex|0;if(object.jsonName!=null)message.jsonName=String(object.jsonName);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.FieldDescriptorProto.options: object expected");message.options=$root.google.protobuf.FieldOptions.fromObject(object.options,long+1)}if(object.proto3Optional!=null)message.proto3Optional=Boolean(object.proto3Optional);return message};FieldDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.extendee="";object.number=0;object.label=options.enums===String?"LABEL_OPTIONAL":1;object.type=options.enums===String?"TYPE_DOUBLE":1;object.typeName="";object.defaultValue="";object.options=null;object.oneofIndex=0;object.jsonName="";object.proto3Optional=false}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.extendee!=null&&message.hasOwnProperty("extendee"))object.extendee=message.extendee;if(message.number!=null&&message.hasOwnProperty("number"))object.number=message.number;if(message.label!=null&&message.hasOwnProperty("label"))object.label=options.enums===String?$root.google.protobuf.FieldDescriptorProto.Label[message.label]===undefined?message.label:$root.google.protobuf.FieldDescriptorProto.Label[message.label]:message.label;if(message.type!=null&&message.hasOwnProperty("type"))object.type=options.enums===String?$root.google.protobuf.FieldDescriptorProto.Type[message.type]===undefined?message.type:$root.google.protobuf.FieldDescriptorProto.Type[message.type]:message.type;if(message.typeName!=null&&message.hasOwnProperty("typeName"))object.typeName=message.typeName;if(message.defaultValue!=null&&message.hasOwnProperty("defaultValue"))object.defaultValue=message.defaultValue;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.FieldOptions.toObject(message.options,options);if(message.oneofIndex!=null&&message.hasOwnProperty("oneofIndex"))object.oneofIndex=message.oneofIndex;if(message.jsonName!=null&&message.hasOwnProperty("jsonName"))object.jsonName=message.jsonName;if(message.proto3Optional!=null&&message.hasOwnProperty("proto3Optional"))object.proto3Optional=message.proto3Optional;return object};FieldDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldDescriptorProto"};FieldDescriptorProto.Type=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[1]="TYPE_DOUBLE"]=1;values[valuesById[2]="TYPE_FLOAT"]=2;values[valuesById[3]="TYPE_INT64"]=3;values[valuesById[4]="TYPE_UINT64"]=4;values[valuesById[5]="TYPE_INT32"]=5;values[valuesById[6]="TYPE_FIXED64"]=6;values[valuesById[7]="TYPE_FIXED32"]=7;values[valuesById[8]="TYPE_BOOL"]=8;values[valuesById[9]="TYPE_STRING"]=9;values[valuesById[10]="TYPE_GROUP"]=10;values[valuesById[11]="TYPE_MESSAGE"]=11;values[valuesById[12]="TYPE_BYTES"]=12;values[valuesById[13]="TYPE_UINT32"]=13;values[valuesById[14]="TYPE_ENUM"]=14;values[valuesById[15]="TYPE_SFIXED32"]=15;values[valuesById[16]="TYPE_SFIXED64"]=16;values[valuesById[17]="TYPE_SINT32"]=17;values[valuesById[18]="TYPE_SINT64"]=18;return values}();FieldDescriptorProto.Label=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[1]="LABEL_OPTIONAL"]=1;values[valuesById[3]="LABEL_REPEATED"]=3;values[valuesById[2]="LABEL_REQUIRED"]=2;return values}();return FieldDescriptorProto}();protobuf.OneofDescriptorProto=function(){function OneofDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}OneofDescriptorProto.prototype.name="";OneofDescriptorProto.prototype.options=null;OneofDescriptorProto.create=function create(properties){return new OneofDescriptorProto(properties)};OneofDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.OneofOptions.encode(message.options,writer.uint32(18).fork()).ldelim();return writer};OneofDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};OneofDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.OneofDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{message.options=$root.google.protobuf.OneofOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};OneofDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};OneofDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.OneofOptions.verify(message.options,long+1);if(error)return"options."+error}return null};OneofDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.OneofDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.OneofDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.OneofDescriptorProto.options: object expected");message.options=$root.google.protobuf.OneofOptions.fromObject(object.options,long+1)}return message};OneofDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.options=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.OneofOptions.toObject(message.options,options);return object};OneofDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};OneofDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.OneofDescriptorProto"};return OneofDescriptorProto}();protobuf.EnumDescriptorProto=function(){function EnumDescriptorProto(properties){this.value=[];this.reservedRange=[];this.reservedName=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}EnumDescriptorProto.prototype.name="";EnumDescriptorProto.prototype.value=$util.emptyArray;EnumDescriptorProto.prototype.options=null;EnumDescriptorProto.prototype.reservedRange=$util.emptyArray;EnumDescriptorProto.prototype.reservedName=$util.emptyArray;EnumDescriptorProto.prototype.visibility=0;EnumDescriptorProto.create=function create(properties){return new EnumDescriptorProto(properties)};EnumDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.value!=null&&message.value.length)for(var i=0;i<message.value.length;++i)$root.google.protobuf.EnumValueDescriptorProto.encode(message.value[i],writer.uint32(18).fork()).ldelim();if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.EnumOptions.encode(message.options,writer.uint32(26).fork()).ldelim();if(message.reservedRange!=null&&message.reservedRange.length)for(var i=0;i<message.reservedRange.length;++i)$root.google.protobuf.EnumDescriptorProto.EnumReservedRange.encode(message.reservedRange[i],writer.uint32(34).fork()).ldelim();if(message.reservedName!=null&&message.reservedName.length)for(var i=0;i<message.reservedName.length;++i)writer.uint32(42).string(message.reservedName[i]);if(message.visibility!=null&&Object.hasOwnProperty.call(message,"visibility"))writer.uint32(48).int32(message.visibility);return writer};EnumDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};EnumDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.value&&message.value.length))message.value=[];message.value.push($root.google.protobuf.EnumValueDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.options=$root.google.protobuf.EnumOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{if(!(message.reservedRange&&message.reservedRange.length))message.reservedRange=[];message.reservedRange.push($root.google.protobuf.EnumDescriptorProto.EnumReservedRange.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{if(!(message.reservedName&&message.reservedName.length))message.reservedName=[];message.reservedName.push(reader.string());break}case 6:{message.visibility=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};EnumDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.value!=null&&message.hasOwnProperty("value")){if(!Array.isArray(message.value))return"value: array expected";for(var i=0;i<message.value.length;++i){var error=$root.google.protobuf.EnumValueDescriptorProto.verify(message.value[i],long+1);if(error)return"value."+error}}if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.EnumOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.reservedRange!=null&&message.hasOwnProperty("reservedRange")){if(!Array.isArray(message.reservedRange))return"reservedRange: array expected";for(var i=0;i<message.reservedRange.length;++i){var error=$root.google.protobuf.EnumDescriptorProto.EnumReservedRange.verify(message.reservedRange[i],long+1);if(error)return"reservedRange."+error}}if(message.reservedName!=null&&message.hasOwnProperty("reservedName")){if(!Array.isArray(message.reservedName))return"reservedName: array expected";for(var i=0;i<message.reservedName.length;++i)if(!$util.isString(message.reservedName[i]))return"reservedName: string[] expected"}if(message.visibility!=null&&message.hasOwnProperty("visibility"))switch(message.visibility){default:return"visibility: enum value expected";case 0:case 1:case 2:break}return null};EnumDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.value){if(!Array.isArray(object.value))throw TypeError(".google.protobuf.EnumDescriptorProto.value: array expected");message.value=[];for(var i=0;i<object.value.length;++i){if(typeof object.value[i]!=="object")throw TypeError(".google.protobuf.EnumDescriptorProto.value: object expected");message.value[i]=$root.google.protobuf.EnumValueDescriptorProto.fromObject(object.value[i],long+1)}}if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.EnumDescriptorProto.options: object expected");message.options=$root.google.protobuf.EnumOptions.fromObject(object.options,long+1)}if(object.reservedRange){if(!Array.isArray(object.reservedRange))throw TypeError(".google.protobuf.EnumDescriptorProto.reservedRange: array expected");message.reservedRange=[];for(var i=0;i<object.reservedRange.length;++i){if(typeof object.reservedRange[i]!=="object")throw TypeError(".google.protobuf.EnumDescriptorProto.reservedRange: object expected");message.reservedRange[i]=$root.google.protobuf.EnumDescriptorProto.EnumReservedRange.fromObject(object.reservedRange[i],long+1)}}if(object.reservedName){if(!Array.isArray(object.reservedName))throw TypeError(".google.protobuf.EnumDescriptorProto.reservedName: array expected");message.reservedName=[];for(var i=0;i<object.reservedName.length;++i)message.reservedName[i]=String(object.reservedName[i])}switch(object.visibility){default:if(typeof object.visibility==="number"){message.visibility=object.visibility;break}break;case"VISIBILITY_UNSET":case 0:message.visibility=0;break;case"VISIBILITY_LOCAL":case 1:message.visibility=1;break;case"VISIBILITY_EXPORT":case 2:message.visibility=2;break}return message};EnumDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.value=[];object.reservedRange=[];object.reservedName=[]}if(options.defaults){object.name="";object.options=null;object.visibility=options.enums===String?"VISIBILITY_UNSET":0}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.value&&message.value.length){object.value=[];for(var j=0;j<message.value.length;++j)object.value[j]=$root.google.protobuf.EnumValueDescriptorProto.toObject(message.value[j],options)}if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.EnumOptions.toObject(message.options,options);if(message.reservedRange&&message.reservedRange.length){object.reservedRange=[];for(var j=0;j<message.reservedRange.length;++j)object.reservedRange[j]=$root.google.protobuf.EnumDescriptorProto.EnumReservedRange.toObject(message.reservedRange[j],options)}if(message.reservedName&&message.reservedName.length){object.reservedName=[];for(var j=0;j<message.reservedName.length;++j)object.reservedName[j]=message.reservedName[j]}if(message.visibility!=null&&message.hasOwnProperty("visibility"))object.visibility=options.enums===String?$root.google.protobuf.SymbolVisibility[message.visibility]===undefined?message.visibility:$root.google.protobuf.SymbolVisibility[message.visibility]:message.visibility;return object};EnumDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumDescriptorProto"};EnumDescriptorProto.EnumReservedRange=function(){function EnumReservedRange(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}EnumReservedRange.prototype.start=0;EnumReservedRange.prototype.end=0;EnumReservedRange.create=function create(properties){return new EnumReservedRange(properties)};EnumReservedRange.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.start!=null&&Object.hasOwnProperty.call(message,"start"))writer.uint32(8).int32(message.start);if(message.end!=null&&Object.hasOwnProperty.call(message,"end"))writer.uint32(16).int32(message.end);return writer};EnumReservedRange.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};EnumReservedRange.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.start=reader.int32();break}case 2:{message.end=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};EnumReservedRange.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumReservedRange.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.start!=null&&message.hasOwnProperty("start"))if(!$util.isInteger(message.start))return"start: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";return null};EnumReservedRange.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumDescriptorProto.EnumReservedRange)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange;if(object.start!=null)message.start=object.start|0;if(object.end!=null)message.end=object.end|0;return message};EnumReservedRange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.start=0;object.end=0}if(message.start!=null&&message.hasOwnProperty("start"))object.start=message.start;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;return object};EnumReservedRange.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumReservedRange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumDescriptorProto.EnumReservedRange"};return EnumReservedRange}();return EnumDescriptorProto}();protobuf.EnumValueDescriptorProto=function(){function EnumValueDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}EnumValueDescriptorProto.prototype.name="";EnumValueDescriptorProto.prototype.number=0;EnumValueDescriptorProto.prototype.options=null;EnumValueDescriptorProto.create=function create(properties){return new EnumValueDescriptorProto(properties)};EnumValueDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.number!=null&&Object.hasOwnProperty.call(message,"number"))writer.uint32(16).int32(message.number);if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.EnumValueOptions.encode(message.options,writer.uint32(26).fork()).ldelim();return writer};EnumValueDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};EnumValueDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumValueDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{message.number=reader.int32();break}case 3:{message.options=$root.google.protobuf.EnumValueOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};EnumValueDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumValueDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.number!=null&&message.hasOwnProperty("number"))if(!$util.isInteger(message.number))return"number: integer expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.EnumValueOptions.verify(message.options,long+1);if(error)return"options."+error}return null};EnumValueDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumValueDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumValueDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.number!=null)message.number=object.number|0;if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.EnumValueDescriptorProto.options: object expected");message.options=$root.google.protobuf.EnumValueOptions.fromObject(object.options,long+1)}return message};EnumValueDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.number=0;object.options=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.number!=null&&message.hasOwnProperty("number"))object.number=message.number;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.EnumValueOptions.toObject(message.options,options);return object};EnumValueDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumValueDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumValueDescriptorProto"};return EnumValueDescriptorProto}();protobuf.ServiceDescriptorProto=function(){function ServiceDescriptorProto(properties){this.method=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ServiceDescriptorProto.prototype.name="";ServiceDescriptorProto.prototype.method=$util.emptyArray;ServiceDescriptorProto.prototype.options=null;ServiceDescriptorProto.create=function create(properties){return new ServiceDescriptorProto(properties)};ServiceDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.method!=null&&message.method.length)for(var i=0;i<message.method.length;++i)$root.google.protobuf.MethodDescriptorProto.encode(message.method[i],writer.uint32(18).fork()).ldelim();if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.ServiceOptions.encode(message.options,writer.uint32(26).fork()).ldelim();return writer};ServiceDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ServiceDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ServiceDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.method&&message.method.length))message.method=[];message.method.push($root.google.protobuf.MethodDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.options=$root.google.protobuf.ServiceOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ServiceDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ServiceDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.method!=null&&message.hasOwnProperty("method")){if(!Array.isArray(message.method))return"method: array expected";for(var i=0;i<message.method.length;++i){var error=$root.google.protobuf.MethodDescriptorProto.verify(message.method[i],long+1);if(error)return"method."+error}}if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.ServiceOptions.verify(message.options,long+1);if(error)return"options."+error}return null};ServiceDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.ServiceDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ServiceDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.method){if(!Array.isArray(object.method))throw TypeError(".google.protobuf.ServiceDescriptorProto.method: array expected");message.method=[];for(var i=0;i<object.method.length;++i){if(typeof object.method[i]!=="object")throw TypeError(".google.protobuf.ServiceDescriptorProto.method: object expected");message.method[i]=$root.google.protobuf.MethodDescriptorProto.fromObject(object.method[i],long+1)}}if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.ServiceDescriptorProto.options: object expected");message.options=$root.google.protobuf.ServiceOptions.fromObject(object.options,long+1)}return message};ServiceDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.method=[];if(options.defaults){object.name="";object.options=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.method&&message.method.length){object.method=[];for(var j=0;j<message.method.length;++j)object.method[j]=$root.google.protobuf.MethodDescriptorProto.toObject(message.method[j],options)}if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.ServiceOptions.toObject(message.options,options);return object};ServiceDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ServiceDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.ServiceDescriptorProto"};return ServiceDescriptorProto}();protobuf.MethodDescriptorProto=function(){function MethodDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}MethodDescriptorProto.prototype.name="";MethodDescriptorProto.prototype.inputType="";MethodDescriptorProto.prototype.outputType="";MethodDescriptorProto.prototype.options=null;MethodDescriptorProto.prototype.clientStreaming=false;MethodDescriptorProto.prototype.serverStreaming=false;MethodDescriptorProto.create=function create(properties){return new MethodDescriptorProto(properties)};MethodDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.inputType!=null&&Object.hasOwnProperty.call(message,"inputType"))writer.uint32(18).string(message.inputType);if(message.outputType!=null&&Object.hasOwnProperty.call(message,"outputType"))writer.uint32(26).string(message.outputType);if(message.options!=null&&Object.hasOwnProperty.call(message,"options"))$root.google.protobuf.MethodOptions.encode(message.options,writer.uint32(34).fork()).ldelim();if(message.clientStreaming!=null&&Object.hasOwnProperty.call(message,"clientStreaming"))writer.uint32(40).bool(message.clientStreaming);if(message.serverStreaming!=null&&Object.hasOwnProperty.call(message,"serverStreaming"))writer.uint32(48).bool(message.serverStreaming);return writer};MethodDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};MethodDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.MethodDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{message.inputType=reader.string();break}case 3:{message.outputType=reader.string();break}case 4:{message.options=$root.google.protobuf.MethodOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.clientStreaming=reader.bool();break}case 6:{message.serverStreaming=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};MethodDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MethodDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.inputType!=null&&message.hasOwnProperty("inputType"))if(!$util.isString(message.inputType))return"inputType: string expected";if(message.outputType!=null&&message.hasOwnProperty("outputType"))if(!$util.isString(message.outputType))return"outputType: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.MethodOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.clientStreaming!=null&&message.hasOwnProperty("clientStreaming"))if(typeof message.clientStreaming!=="boolean")return"clientStreaming: boolean expected";if(message.serverStreaming!=null&&message.hasOwnProperty("serverStreaming"))if(typeof message.serverStreaming!=="boolean")return"serverStreaming: boolean expected";return null};MethodDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.MethodDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.MethodDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.inputType!=null)message.inputType=String(object.inputType);if(object.outputType!=null)message.outputType=String(object.outputType);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.MethodDescriptorProto.options: object expected");message.options=$root.google.protobuf.MethodOptions.fromObject(object.options,long+1)}if(object.clientStreaming!=null)message.clientStreaming=Boolean(object.clientStreaming);if(object.serverStreaming!=null)message.serverStreaming=Boolean(object.serverStreaming);return message};MethodDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.inputType="";object.outputType="";object.options=null;object.clientStreaming=false;object.serverStreaming=false}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.inputType!=null&&message.hasOwnProperty("inputType"))object.inputType=message.inputType;if(message.outputType!=null&&message.hasOwnProperty("outputType"))object.outputType=message.outputType;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.MethodOptions.toObject(message.options,options);if(message.clientStreaming!=null&&message.hasOwnProperty("clientStreaming"))object.clientStreaming=message.clientStreaming;if(message.serverStreaming!=null&&message.hasOwnProperty("serverStreaming"))object.serverStreaming=message.serverStreaming;return object};MethodDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};MethodDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.MethodDescriptorProto"};return MethodDescriptorProto}();protobuf.FileOptions=function(){function FileOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FileOptions.prototype.javaPackage="";FileOptions.prototype.javaOuterClassname="";FileOptions.prototype.javaMultipleFiles=false;FileOptions.prototype.javaGenerateEqualsAndHash=false;FileOptions.prototype.javaStringCheckUtf8=false;FileOptions.prototype.optimizeFor=1;FileOptions.prototype.goPackage="";FileOptions.prototype.ccGenericServices=false;FileOptions.prototype.javaGenericServices=false;FileOptions.prototype.pyGenericServices=false;FileOptions.prototype.deprecated=false;FileOptions.prototype.ccEnableArenas=true;FileOptions.prototype.objcClassPrefix="";FileOptions.prototype.csharpNamespace="";FileOptions.prototype.swiftPrefix="";FileOptions.prototype.phpClassPrefix="";FileOptions.prototype.phpNamespace="";FileOptions.prototype.phpMetadataNamespace="";FileOptions.prototype.rubyPackage="";FileOptions.prototype.features=null;FileOptions.prototype.uninterpretedOption=$util.emptyArray;FileOptions.create=function create(properties){return new FileOptions(properties)};FileOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.javaPackage!=null&&Object.hasOwnProperty.call(message,"javaPackage"))writer.uint32(10).string(message.javaPackage);if(message.javaOuterClassname!=null&&Object.hasOwnProperty.call(message,"javaOuterClassname"))writer.uint32(66).string(message.javaOuterClassname);if(message.optimizeFor!=null&&Object.hasOwnProperty.call(message,"optimizeFor"))writer.uint32(72).int32(message.optimizeFor);if(message.javaMultipleFiles!=null&&Object.hasOwnProperty.call(message,"javaMultipleFiles"))writer.uint32(80).bool(message.javaMultipleFiles);if(message.goPackage!=null&&Object.hasOwnProperty.call(message,"goPackage"))writer.uint32(90).string(message.goPackage);if(message.ccGenericServices!=null&&Object.hasOwnProperty.call(message,"ccGenericServices"))writer.uint32(128).bool(message.ccGenericServices);if(message.javaGenericServices!=null&&Object.hasOwnProperty.call(message,"javaGenericServices"))writer.uint32(136).bool(message.javaGenericServices);if(message.pyGenericServices!=null&&Object.hasOwnProperty.call(message,"pyGenericServices"))writer.uint32(144).bool(message.pyGenericServices);if(message.javaGenerateEqualsAndHash!=null&&Object.hasOwnProperty.call(message,"javaGenerateEqualsAndHash"))writer.uint32(160).bool(message.javaGenerateEqualsAndHash);if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(184).bool(message.deprecated);if(message.javaStringCheckUtf8!=null&&Object.hasOwnProperty.call(message,"javaStringCheckUtf8"))writer.uint32(216).bool(message.javaStringCheckUtf8);if(message.ccEnableArenas!=null&&Object.hasOwnProperty.call(message,"ccEnableArenas"))writer.uint32(248).bool(message.ccEnableArenas);if(message.objcClassPrefix!=null&&Object.hasOwnProperty.call(message,"objcClassPrefix"))writer.uint32(290).string(message.objcClassPrefix);if(message.csharpNamespace!=null&&Object.hasOwnProperty.call(message,"csharpNamespace"))writer.uint32(298).string(message.csharpNamespace);if(message.swiftPrefix!=null&&Object.hasOwnProperty.call(message,"swiftPrefix"))writer.uint32(314).string(message.swiftPrefix);if(message.phpClassPrefix!=null&&Object.hasOwnProperty.call(message,"phpClassPrefix"))writer.uint32(322).string(message.phpClassPrefix);if(message.phpNamespace!=null&&Object.hasOwnProperty.call(message,"phpNamespace"))writer.uint32(330).string(message.phpNamespace);if(message.phpMetadataNamespace!=null&&Object.hasOwnProperty.call(message,"phpMetadataNamespace"))writer.uint32(354).string(message.phpMetadataNamespace);if(message.rubyPackage!=null&&Object.hasOwnProperty.call(message,"rubyPackage"))writer.uint32(362).string(message.rubyPackage);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(402).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();return writer};FileOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FileOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FileOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.javaPackage=reader.string();break}case 8:{message.javaOuterClassname=reader.string();break}case 10:{message.javaMultipleFiles=reader.bool();break}case 20:{message.javaGenerateEqualsAndHash=reader.bool();break}case 27:{message.javaStringCheckUtf8=reader.bool();break}case 9:{message.optimizeFor=reader.int32();break}case 11:{message.goPackage=reader.string();break}case 16:{message.ccGenericServices=reader.bool();break}case 17:{message.javaGenericServices=reader.bool();break}case 18:{message.pyGenericServices=reader.bool();break}case 23:{message.deprecated=reader.bool();break}case 31:{message.ccEnableArenas=reader.bool();break}case 36:{message.objcClassPrefix=reader.string();break}case 37:{message.csharpNamespace=reader.string();break}case 39:{message.swiftPrefix=reader.string();break}case 40:{message.phpClassPrefix=reader.string();break}case 41:{message.phpNamespace=reader.string();break}case 44:{message.phpMetadataNamespace=reader.string();break}case 45:{message.rubyPackage=reader.string();break}case 50:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};FileOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FileOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.javaPackage!=null&&message.hasOwnProperty("javaPackage"))if(!$util.isString(message.javaPackage))return"javaPackage: string expected";if(message.javaOuterClassname!=null&&message.hasOwnProperty("javaOuterClassname"))if(!$util.isString(message.javaOuterClassname))return"javaOuterClassname: string expected";if(message.javaMultipleFiles!=null&&message.hasOwnProperty("javaMultipleFiles"))if(typeof message.javaMultipleFiles!=="boolean")return"javaMultipleFiles: boolean expected";if(message.javaGenerateEqualsAndHash!=null&&message.hasOwnProperty("javaGenerateEqualsAndHash"))if(typeof message.javaGenerateEqualsAndHash!=="boolean")return"javaGenerateEqualsAndHash: boolean expected";if(message.javaStringCheckUtf8!=null&&message.hasOwnProperty("javaStringCheckUtf8"))if(typeof message.javaStringCheckUtf8!=="boolean")return"javaStringCheckUtf8: boolean expected";if(message.optimizeFor!=null&&message.hasOwnProperty("optimizeFor"))switch(message.optimizeFor){default:return"optimizeFor: enum value expected";case 1:case 2:case 3:break}if(message.goPackage!=null&&message.hasOwnProperty("goPackage"))if(!$util.isString(message.goPackage))return"goPackage: string expected";if(message.ccGenericServices!=null&&message.hasOwnProperty("ccGenericServices"))if(typeof message.ccGenericServices!=="boolean")return"ccGenericServices: boolean expected";if(message.javaGenericServices!=null&&message.hasOwnProperty("javaGenericServices"))if(typeof message.javaGenericServices!=="boolean")return"javaGenericServices: boolean expected";if(message.pyGenericServices!=null&&message.hasOwnProperty("pyGenericServices"))if(typeof message.pyGenericServices!=="boolean")return"pyGenericServices: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.ccEnableArenas!=null&&message.hasOwnProperty("ccEnableArenas"))if(typeof message.ccEnableArenas!=="boolean")return"ccEnableArenas: boolean expected";if(message.objcClassPrefix!=null&&message.hasOwnProperty("objcClassPrefix"))if(!$util.isString(message.objcClassPrefix))return"objcClassPrefix: string expected";if(message.csharpNamespace!=null&&message.hasOwnProperty("csharpNamespace"))if(!$util.isString(message.csharpNamespace))return"csharpNamespace: string expected";if(message.swiftPrefix!=null&&message.hasOwnProperty("swiftPrefix"))if(!$util.isString(message.swiftPrefix))return"swiftPrefix: string expected";if(message.phpClassPrefix!=null&&message.hasOwnProperty("phpClassPrefix"))if(!$util.isString(message.phpClassPrefix))return"phpClassPrefix: string expected";if(message.phpNamespace!=null&&message.hasOwnProperty("phpNamespace"))if(!$util.isString(message.phpNamespace))return"phpNamespace: string expected";if(message.phpMetadataNamespace!=null&&message.hasOwnProperty("phpMetadataNamespace"))if(!$util.isString(message.phpMetadataNamespace))return"phpMetadataNamespace: string expected";if(message.rubyPackage!=null&&message.hasOwnProperty("rubyPackage"))if(!$util.isString(message.rubyPackage))return"rubyPackage: string expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}return null};FileOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FileOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FileOptions;if(object.javaPackage!=null)message.javaPackage=String(object.javaPackage);if(object.javaOuterClassname!=null)message.javaOuterClassname=String(object.javaOuterClassname);if(object.javaMultipleFiles!=null)message.javaMultipleFiles=Boolean(object.javaMultipleFiles);if(object.javaGenerateEqualsAndHash!=null)message.javaGenerateEqualsAndHash=Boolean(object.javaGenerateEqualsAndHash);if(object.javaStringCheckUtf8!=null)message.javaStringCheckUtf8=Boolean(object.javaStringCheckUtf8);switch(object.optimizeFor){default:if(typeof object.optimizeFor==="number"){message.optimizeFor=object.optimizeFor;break}break;case"SPEED":case 1:message.optimizeFor=1;break;case"CODE_SIZE":case 2:message.optimizeFor=2;break;case"LITE_RUNTIME":case 3:message.optimizeFor=3;break}if(object.goPackage!=null)message.goPackage=String(object.goPackage);if(object.ccGenericServices!=null)message.ccGenericServices=Boolean(object.ccGenericServices);if(object.javaGenericServices!=null)message.javaGenericServices=Boolean(object.javaGenericServices);if(object.pyGenericServices!=null)message.pyGenericServices=Boolean(object.pyGenericServices);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.ccEnableArenas!=null)message.ccEnableArenas=Boolean(object.ccEnableArenas);if(object.objcClassPrefix!=null)message.objcClassPrefix=String(object.objcClassPrefix);if(object.csharpNamespace!=null)message.csharpNamespace=String(object.csharpNamespace);if(object.swiftPrefix!=null)message.swiftPrefix=String(object.swiftPrefix);if(object.phpClassPrefix!=null)message.phpClassPrefix=String(object.phpClassPrefix);if(object.phpNamespace!=null)message.phpNamespace=String(object.phpNamespace);if(object.phpMetadataNamespace!=null)message.phpMetadataNamespace=String(object.phpMetadataNamespace);if(object.rubyPackage!=null)message.rubyPackage=String(object.rubyPackage);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.FileOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}return message};FileOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.uninterpretedOption=[];if(options.defaults){object.javaPackage="";object.javaOuterClassname="";object.optimizeFor=options.enums===String?"SPEED":1;object.javaMultipleFiles=false;object.goPackage="";object.ccGenericServices=false;object.javaGenericServices=false;object.pyGenericServices=false;object.javaGenerateEqualsAndHash=false;object.deprecated=false;object.javaStringCheckUtf8=false;object.ccEnableArenas=true;object.objcClassPrefix="";object.csharpNamespace="";object.swiftPrefix="";object.phpClassPrefix="";object.phpNamespace="";object.phpMetadataNamespace="";object.rubyPackage="";object.features=null}if(message.javaPackage!=null&&message.hasOwnProperty("javaPackage"))object.javaPackage=message.javaPackage;if(message.javaOuterClassname!=null&&message.hasOwnProperty("javaOuterClassname"))object.javaOuterClassname=message.javaOuterClassname;if(message.optimizeFor!=null&&message.hasOwnProperty("optimizeFor"))object.optimizeFor=options.enums===String?$root.google.protobuf.FileOptions.OptimizeMode[message.optimizeFor]===undefined?message.optimizeFor:$root.google.protobuf.FileOptions.OptimizeMode[message.optimizeFor]:message.optimizeFor;if(message.javaMultipleFiles!=null&&message.hasOwnProperty("javaMultipleFiles"))object.javaMultipleFiles=message.javaMultipleFiles;if(message.goPackage!=null&&message.hasOwnProperty("goPackage"))object.goPackage=message.goPackage;if(message.ccGenericServices!=null&&message.hasOwnProperty("ccGenericServices"))object.ccGenericServices=message.ccGenericServices;if(message.javaGenericServices!=null&&message.hasOwnProperty("javaGenericServices"))object.javaGenericServices=message.javaGenericServices;if(message.pyGenericServices!=null&&message.hasOwnProperty("pyGenericServices"))object.pyGenericServices=message.pyGenericServices;if(message.javaGenerateEqualsAndHash!=null&&message.hasOwnProperty("javaGenerateEqualsAndHash"))object.javaGenerateEqualsAndHash=message.javaGenerateEqualsAndHash;if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.javaStringCheckUtf8!=null&&message.hasOwnProperty("javaStringCheckUtf8"))object.javaStringCheckUtf8=message.javaStringCheckUtf8;if(message.ccEnableArenas!=null&&message.hasOwnProperty("ccEnableArenas"))object.ccEnableArenas=message.ccEnableArenas;if(message.objcClassPrefix!=null&&message.hasOwnProperty("objcClassPrefix"))object.objcClassPrefix=message.objcClassPrefix;if(message.csharpNamespace!=null&&message.hasOwnProperty("csharpNamespace"))object.csharpNamespace=message.csharpNamespace;if(message.swiftPrefix!=null&&message.hasOwnProperty("swiftPrefix"))object.swiftPrefix=message.swiftPrefix;if(message.phpClassPrefix!=null&&message.hasOwnProperty("phpClassPrefix"))object.phpClassPrefix=message.phpClassPrefix;if(message.phpNamespace!=null&&message.hasOwnProperty("phpNamespace"))object.phpNamespace=message.phpNamespace;if(message.phpMetadataNamespace!=null&&message.hasOwnProperty("phpMetadataNamespace"))object.phpMetadataNamespace=message.phpMetadataNamespace;if(message.rubyPackage!=null&&message.hasOwnProperty("rubyPackage"))object.rubyPackage=message.rubyPackage;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}return object};FileOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FileOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FileOptions"};FileOptions.OptimizeMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[1]="SPEED"]=1;values[valuesById[2]="CODE_SIZE"]=2;values[valuesById[3]="LITE_RUNTIME"]=3;return values}();return FileOptions}();protobuf.MessageOptions=function(){function MessageOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}MessageOptions.prototype.messageSetWireFormat=false;MessageOptions.prototype.noStandardDescriptorAccessor=false;MessageOptions.prototype.deprecated=false;MessageOptions.prototype.mapEntry=false;MessageOptions.prototype.deprecatedLegacyJsonFieldConflicts=false;MessageOptions.prototype.features=null;MessageOptions.prototype.uninterpretedOption=$util.emptyArray;MessageOptions.create=function create(properties){return new MessageOptions(properties)};MessageOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.messageSetWireFormat!=null&&Object.hasOwnProperty.call(message,"messageSetWireFormat"))writer.uint32(8).bool(message.messageSetWireFormat);if(message.noStandardDescriptorAccessor!=null&&Object.hasOwnProperty.call(message,"noStandardDescriptorAccessor"))writer.uint32(16).bool(message.noStandardDescriptorAccessor);if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(24).bool(message.deprecated);if(message.mapEntry!=null&&Object.hasOwnProperty.call(message,"mapEntry"))writer.uint32(56).bool(message.mapEntry);if(message.deprecatedLegacyJsonFieldConflicts!=null&&Object.hasOwnProperty.call(message,"deprecatedLegacyJsonFieldConflicts"))writer.uint32(88).bool(message.deprecatedLegacyJsonFieldConflicts);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(98).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();return writer};MessageOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};MessageOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.MessageOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.messageSetWireFormat=reader.bool();break}case 2:{message.noStandardDescriptorAccessor=reader.bool();break}case 3:{message.deprecated=reader.bool();break}case 7:{message.mapEntry=reader.bool();break}case 11:{message.deprecatedLegacyJsonFieldConflicts=reader.bool();break}case 12:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};MessageOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MessageOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.messageSetWireFormat!=null&&message.hasOwnProperty("messageSetWireFormat"))if(typeof message.messageSetWireFormat!=="boolean")return"messageSetWireFormat: boolean expected";if(message.noStandardDescriptorAccessor!=null&&message.hasOwnProperty("noStandardDescriptorAccessor"))if(typeof message.noStandardDescriptorAccessor!=="boolean")return"noStandardDescriptorAccessor: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.mapEntry!=null&&message.hasOwnProperty("mapEntry"))if(typeof message.mapEntry!=="boolean")return"mapEntry: boolean expected";if(message.deprecatedLegacyJsonFieldConflicts!=null&&message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts"))if(typeof message.deprecatedLegacyJsonFieldConflicts!=="boolean")return"deprecatedLegacyJsonFieldConflicts: boolean expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}return null};MessageOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.MessageOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.MessageOptions;if(object.messageSetWireFormat!=null)message.messageSetWireFormat=Boolean(object.messageSetWireFormat);if(object.noStandardDescriptorAccessor!=null)message.noStandardDescriptorAccessor=Boolean(object.noStandardDescriptorAccessor);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.mapEntry!=null)message.mapEntry=Boolean(object.mapEntry);if(object.deprecatedLegacyJsonFieldConflicts!=null)message.deprecatedLegacyJsonFieldConflicts=Boolean(object.deprecatedLegacyJsonFieldConflicts);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.MessageOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}return message};MessageOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.uninterpretedOption=[];if(options.defaults){object.messageSetWireFormat=false;object.noStandardDescriptorAccessor=false;object.deprecated=false;object.mapEntry=false;object.deprecatedLegacyJsonFieldConflicts=false;object.features=null}if(message.messageSetWireFormat!=null&&message.hasOwnProperty("messageSetWireFormat"))object.messageSetWireFormat=message.messageSetWireFormat;if(message.noStandardDescriptorAccessor!=null&&message.hasOwnProperty("noStandardDescriptorAccessor"))object.noStandardDescriptorAccessor=message.noStandardDescriptorAccessor;if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.mapEntry!=null&&message.hasOwnProperty("mapEntry"))object.mapEntry=message.mapEntry;if(message.deprecatedLegacyJsonFieldConflicts!=null&&message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts"))object.deprecatedLegacyJsonFieldConflicts=message.deprecatedLegacyJsonFieldConflicts;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}return object};MessageOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};MessageOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.MessageOptions"};return MessageOptions}();protobuf.FieldOptions=function(){function FieldOptions(properties){this.targets=[];this.editionDefaults=[];this.uninterpretedOption=[];this[".google.api.fieldBehavior"]=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FieldOptions.prototype.ctype=0;FieldOptions.prototype.packed=false;FieldOptions.prototype.jstype=0;FieldOptions.prototype.lazy=false;FieldOptions.prototype.unverifiedLazy=false;FieldOptions.prototype.deprecated=false;FieldOptions.prototype.weak=false;FieldOptions.prototype.debugRedact=false;FieldOptions.prototype.retention=0;FieldOptions.prototype.targets=$util.emptyArray;FieldOptions.prototype.editionDefaults=$util.emptyArray;FieldOptions.prototype.features=null;FieldOptions.prototype.featureSupport=null;FieldOptions.prototype.uninterpretedOption=$util.emptyArray;FieldOptions.prototype[".google.api.fieldBehavior"]=$util.emptyArray;FieldOptions.create=function create(properties){return new FieldOptions(properties)};FieldOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.ctype!=null&&Object.hasOwnProperty.call(message,"ctype"))writer.uint32(8).int32(message.ctype);if(message.packed!=null&&Object.hasOwnProperty.call(message,"packed"))writer.uint32(16).bool(message.packed);if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(24).bool(message.deprecated);if(message.lazy!=null&&Object.hasOwnProperty.call(message,"lazy"))writer.uint32(40).bool(message.lazy);if(message.jstype!=null&&Object.hasOwnProperty.call(message,"jstype"))writer.uint32(48).int32(message.jstype);if(message.weak!=null&&Object.hasOwnProperty.call(message,"weak"))writer.uint32(80).bool(message.weak);if(message.unverifiedLazy!=null&&Object.hasOwnProperty.call(message,"unverifiedLazy"))writer.uint32(120).bool(message.unverifiedLazy);if(message.debugRedact!=null&&Object.hasOwnProperty.call(message,"debugRedact"))writer.uint32(128).bool(message.debugRedact);if(message.retention!=null&&Object.hasOwnProperty.call(message,"retention"))writer.uint32(136).int32(message.retention);if(message.targets!=null&&message.targets.length)for(var i=0;i<message.targets.length;++i)writer.uint32(152).int32(message.targets[i]);if(message.editionDefaults!=null&&message.editionDefaults.length)for(var i=0;i<message.editionDefaults.length;++i)$root.google.protobuf.FieldOptions.EditionDefault.encode(message.editionDefaults[i],writer.uint32(162).fork()).ldelim();if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(170).fork()).ldelim();if(message.featureSupport!=null&&Object.hasOwnProperty.call(message,"featureSupport"))$root.google.protobuf.FieldOptions.FeatureSupport.encode(message.featureSupport,writer.uint32(178).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();if(message[".google.api.fieldBehavior"]!=null&&message[".google.api.fieldBehavior"].length)for(var i=0;i<message[".google.api.fieldBehavior"].length;++i)writer.uint32(8416).int32(message[".google.api.fieldBehavior"][i]);return writer};FieldOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FieldOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.ctype=reader.int32();break}case 2:{message.packed=reader.bool();break}case 6:{message.jstype=reader.int32();break}case 5:{message.lazy=reader.bool();break}case 15:{message.unverifiedLazy=reader.bool();break}case 3:{message.deprecated=reader.bool();break}case 10:{message.weak=reader.bool();break}case 16:{message.debugRedact=reader.bool();break}case 17:{message.retention=reader.int32();break}case 19:{if(!(message.targets&&message.targets.length))message.targets=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.targets.push(reader.int32())}else message.targets.push(reader.int32());break}case 20:{if(!(message.editionDefaults&&message.editionDefaults.length))message.editionDefaults=[];message.editionDefaults.push($root.google.protobuf.FieldOptions.EditionDefault.decode(reader,reader.uint32(),undefined,long+1));break}case 21:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 22:{message.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 1052:{if(!(message[".google.api.fieldBehavior"]&&message[".google.api.fieldBehavior"].length))message[".google.api.fieldBehavior"]=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message[".google.api.fieldBehavior"].push(reader.int32())}else message[".google.api.fieldBehavior"].push(reader.int32());break}default:reader.skipType(tag&7,long);break}}return message};FieldOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.ctype!=null&&message.hasOwnProperty("ctype"))switch(message.ctype){default:return"ctype: enum value expected";case 0:case 1:case 2:break}if(message.packed!=null&&message.hasOwnProperty("packed"))if(typeof message.packed!=="boolean")return"packed: boolean expected";if(message.jstype!=null&&message.hasOwnProperty("jstype"))switch(message.jstype){default:return"jstype: enum value expected";case 0:case 1:case 2:break}if(message.lazy!=null&&message.hasOwnProperty("lazy"))if(typeof message.lazy!=="boolean")return"lazy: boolean expected";if(message.unverifiedLazy!=null&&message.hasOwnProperty("unverifiedLazy"))if(typeof message.unverifiedLazy!=="boolean")return"unverifiedLazy: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.weak!=null&&message.hasOwnProperty("weak"))if(typeof message.weak!=="boolean")return"weak: boolean expected";if(message.debugRedact!=null&&message.hasOwnProperty("debugRedact"))if(typeof message.debugRedact!=="boolean")return"debugRedact: boolean expected";if(message.retention!=null&&message.hasOwnProperty("retention"))switch(message.retention){default:return"retention: enum value expected";case 0:case 1:case 2:break}if(message.targets!=null&&message.hasOwnProperty("targets")){if(!Array.isArray(message.targets))return"targets: array expected";for(var i=0;i<message.targets.length;++i)switch(message.targets[i]){default:return"targets: enum value[] expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:break}}if(message.editionDefaults!=null&&message.hasOwnProperty("editionDefaults")){if(!Array.isArray(message.editionDefaults))return"editionDefaults: array expected";for(var i=0;i<message.editionDefaults.length;++i){var error=$root.google.protobuf.FieldOptions.EditionDefault.verify(message.editionDefaults[i],long+1);if(error)return"editionDefaults."+error}}if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.featureSupport!=null&&message.hasOwnProperty("featureSupport")){var error=$root.google.protobuf.FieldOptions.FeatureSupport.verify(message.featureSupport,long+1);if(error)return"featureSupport."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}if(message[".google.api.fieldBehavior"]!=null&&message.hasOwnProperty(".google.api.fieldBehavior")){if(!Array.isArray(message[".google.api.fieldBehavior"]))return".google.api.fieldBehavior: array expected";for(var i=0;i<message[".google.api.fieldBehavior"].length;++i)switch(message[".google.api.fieldBehavior"][i]){default:return".google.api.fieldBehavior: enum value[] expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:break}}return null};FieldOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldOptions;switch(object.ctype){default:if(typeof object.ctype==="number"){message.ctype=object.ctype;break}break;case"STRING":case 0:message.ctype=0;break;case"CORD":case 1:message.ctype=1;break;case"STRING_PIECE":case 2:message.ctype=2;break}if(object.packed!=null)message.packed=Boolean(object.packed);switch(object.jstype){default:if(typeof object.jstype==="number"){message.jstype=object.jstype;break}break;case"JS_NORMAL":case 0:message.jstype=0;break;case"JS_STRING":case 1:message.jstype=1;break;case"JS_NUMBER":case 2:message.jstype=2;break}if(object.lazy!=null)message.lazy=Boolean(object.lazy);if(object.unverifiedLazy!=null)message.unverifiedLazy=Boolean(object.unverifiedLazy);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.weak!=null)message.weak=Boolean(object.weak);if(object.debugRedact!=null)message.debugRedact=Boolean(object.debugRedact);switch(object.retention){default:if(typeof object.retention==="number"){message.retention=object.retention;break}break;case"RETENTION_UNKNOWN":case 0:message.retention=0;break;case"RETENTION_RUNTIME":case 1:message.retention=1;break;case"RETENTION_SOURCE":case 2:message.retention=2;break}if(object.targets){if(!Array.isArray(object.targets))throw TypeError(".google.protobuf.FieldOptions.targets: array expected");message.targets=[];for(var i=0;i<object.targets.length;++i)switch(object.targets[i]){default:if(typeof object.targets[i]==="number"){message.targets[i]=object.targets[i];break}case"TARGET_TYPE_UNKNOWN":case 0:message.targets[i]=0;break;case"TARGET_TYPE_FILE":case 1:message.targets[i]=1;break;case"TARGET_TYPE_EXTENSION_RANGE":case 2:message.targets[i]=2;break;case"TARGET_TYPE_MESSAGE":case 3:message.targets[i]=3;break;case"TARGET_TYPE_FIELD":case 4:message.targets[i]=4;break;case"TARGET_TYPE_ONEOF":case 5:message.targets[i]=5;break;case"TARGET_TYPE_ENUM":case 6:message.targets[i]=6;break;case"TARGET_TYPE_ENUM_ENTRY":case 7:message.targets[i]=7;break;case"TARGET_TYPE_SERVICE":case 8:message.targets[i]=8;break;case"TARGET_TYPE_METHOD":case 9:message.targets[i]=9;break}}if(object.editionDefaults){if(!Array.isArray(object.editionDefaults))throw TypeError(".google.protobuf.FieldOptions.editionDefaults: array expected");message.editionDefaults=[];for(var i=0;i<object.editionDefaults.length;++i){if(typeof object.editionDefaults[i]!=="object")throw TypeError(".google.protobuf.FieldOptions.editionDefaults: object expected");message.editionDefaults[i]=$root.google.protobuf.FieldOptions.EditionDefault.fromObject(object.editionDefaults[i],long+1)}}if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.FieldOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.featureSupport!=null){if(typeof object.featureSupport!=="object")throw TypeError(".google.protobuf.FieldOptions.featureSupport: object expected");message.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.fromObject(object.featureSupport,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.FieldOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.FieldOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}if(object[".google.api.fieldBehavior"]){if(!Array.isArray(object[".google.api.fieldBehavior"]))throw TypeError(".google.protobuf.FieldOptions..google.api.fieldBehavior: array expected");message[".google.api.fieldBehavior"]=[];for(var i=0;i<object[".google.api.fieldBehavior"].length;++i)switch(object[".google.api.fieldBehavior"][i]){default:if(typeof object[".google.api.fieldBehavior"][i]==="number"){message[".google.api.fieldBehavior"][i]=object[".google.api.fieldBehavior"][i];break}case"FIELD_BEHAVIOR_UNSPECIFIED":case 0:message[".google.api.fieldBehavior"][i]=0;break;case"OPTIONAL":case 1:message[".google.api.fieldBehavior"][i]=1;break;case"REQUIRED":case 2:message[".google.api.fieldBehavior"][i]=2;break;case"OUTPUT_ONLY":case 3:message[".google.api.fieldBehavior"][i]=3;break;case"INPUT_ONLY":case 4:message[".google.api.fieldBehavior"][i]=4;break;case"IMMUTABLE":case 5:message[".google.api.fieldBehavior"][i]=5;break;case"UNORDERED_LIST":case 6:message[".google.api.fieldBehavior"][i]=6;break;case"NON_EMPTY_DEFAULT":case 7:message[".google.api.fieldBehavior"][i]=7;break;case"IDENTIFIER":case 8:message[".google.api.fieldBehavior"][i]=8;break}}return message};FieldOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.targets=[];object.editionDefaults=[];object.uninterpretedOption=[];object[".google.api.fieldBehavior"]=[]}if(options.defaults){object.ctype=options.enums===String?"STRING":0;object.packed=false;object.deprecated=false;object.lazy=false;object.jstype=options.enums===String?"JS_NORMAL":0;object.weak=false;object.unverifiedLazy=false;object.debugRedact=false;object.retention=options.enums===String?"RETENTION_UNKNOWN":0;object.features=null;object.featureSupport=null}if(message.ctype!=null&&message.hasOwnProperty("ctype"))object.ctype=options.enums===String?$root.google.protobuf.FieldOptions.CType[message.ctype]===undefined?message.ctype:$root.google.protobuf.FieldOptions.CType[message.ctype]:message.ctype;if(message.packed!=null&&message.hasOwnProperty("packed"))object.packed=message.packed;if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.lazy!=null&&message.hasOwnProperty("lazy"))object.lazy=message.lazy;if(message.jstype!=null&&message.hasOwnProperty("jstype"))object.jstype=options.enums===String?$root.google.protobuf.FieldOptions.JSType[message.jstype]===undefined?message.jstype:$root.google.protobuf.FieldOptions.JSType[message.jstype]:message.jstype;if(message.weak!=null&&message.hasOwnProperty("weak"))object.weak=message.weak;if(message.unverifiedLazy!=null&&message.hasOwnProperty("unverifiedLazy"))object.unverifiedLazy=message.unverifiedLazy;if(message.debugRedact!=null&&message.hasOwnProperty("debugRedact"))object.debugRedact=message.debugRedact;if(message.retention!=null&&message.hasOwnProperty("retention"))object.retention=options.enums===String?$root.google.protobuf.FieldOptions.OptionRetention[message.retention]===undefined?message.retention:$root.google.protobuf.FieldOptions.OptionRetention[message.retention]:message.retention;if(message.targets&&message.targets.length){object.targets=[];for(var j=0;j<message.targets.length;++j)object.targets[j]=options.enums===String?$root.google.protobuf.FieldOptions.OptionTargetType[message.targets[j]]===undefined?message.targets[j]:$root.google.protobuf.FieldOptions.OptionTargetType[message.targets[j]]:message.targets[j]}if(message.editionDefaults&&message.editionDefaults.length){object.editionDefaults=[];for(var j=0;j<message.editionDefaults.length;++j)object.editionDefaults[j]=$root.google.protobuf.FieldOptions.EditionDefault.toObject(message.editionDefaults[j],options)}if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.featureSupport!=null&&message.hasOwnProperty("featureSupport"))object.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.toObject(message.featureSupport,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}if(message[".google.api.fieldBehavior"]&&message[".google.api.fieldBehavior"].length){object[".google.api.fieldBehavior"]=[];for(var j=0;j<message[".google.api.fieldBehavior"].length;++j)object[".google.api.fieldBehavior"][j]=options.enums===String?$root.google.api.FieldBehavior[message[".google.api.fieldBehavior"][j]]===undefined?message[".google.api.fieldBehavior"][j]:$root.google.api.FieldBehavior[message[".google.api.fieldBehavior"][j]]:message[".google.api.fieldBehavior"][j]}return object};FieldOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldOptions"};FieldOptions.CType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="STRING"]=0;values[valuesById[1]="CORD"]=1;values[valuesById[2]="STRING_PIECE"]=2;return values}();FieldOptions.JSType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="JS_NORMAL"]=0;values[valuesById[1]="JS_STRING"]=1;values[valuesById[2]="JS_NUMBER"]=2;return values}();FieldOptions.OptionRetention=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="RETENTION_UNKNOWN"]=0;values[valuesById[1]="RETENTION_RUNTIME"]=1;values[valuesById[2]="RETENTION_SOURCE"]=2;return values}();FieldOptions.OptionTargetType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TARGET_TYPE_UNKNOWN"]=0;values[valuesById[1]="TARGET_TYPE_FILE"]=1;values[valuesById[2]="TARGET_TYPE_EXTENSION_RANGE"]=2;values[valuesById[3]="TARGET_TYPE_MESSAGE"]=3;values[valuesById[4]="TARGET_TYPE_FIELD"]=4;values[valuesById[5]="TARGET_TYPE_ONEOF"]=5;values[valuesById[6]="TARGET_TYPE_ENUM"]=6;values[valuesById[7]="TARGET_TYPE_ENUM_ENTRY"]=7;values[valuesById[8]="TARGET_TYPE_SERVICE"]=8;values[valuesById[9]="TARGET_TYPE_METHOD"]=9;return values}();FieldOptions.EditionDefault=function(){function EditionDefault(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}EditionDefault.prototype.edition=0;EditionDefault.prototype.value="";EditionDefault.create=function create(properties){return new EditionDefault(properties)};EditionDefault.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.value!=null&&Object.hasOwnProperty.call(message,"value"))writer.uint32(18).string(message.value);if(message.edition!=null&&Object.hasOwnProperty.call(message,"edition"))writer.uint32(24).int32(message.edition);return writer};EditionDefault.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};EditionDefault.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldOptions.EditionDefault;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 3:{message.edition=reader.int32();break}case 2:{message.value=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};EditionDefault.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EditionDefault.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.edition!=null&&message.hasOwnProperty("edition"))switch(message.edition){default:return"edition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isString(message.value))return"value: string expected";return null};EditionDefault.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldOptions.EditionDefault)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldOptions.EditionDefault;switch(object.edition){default:if(typeof object.edition==="number"){message.edition=object.edition;break}break;case"EDITION_UNKNOWN":case 0:message.edition=0;break;case"EDITION_LEGACY":case 900:message.edition=900;break;case"EDITION_PROTO2":case 998:message.edition=998;break;case"EDITION_PROTO3":case 999:message.edition=999;break;case"EDITION_2023":case 1e3:message.edition=1e3;break;case"EDITION_2024":case 1001:message.edition=1001;break;case"EDITION_2026":case 1002:message.edition=1002;break;case"EDITION_UNSTABLE":case 9999:message.edition=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.edition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.edition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.edition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.edition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.edition=99999;break;case"EDITION_MAX":case 2147483647:message.edition=2147483647;break}if(object.value!=null)message.value=String(object.value);return message};EditionDefault.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.value="";object.edition=options.enums===String?"EDITION_UNKNOWN":0}if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;if(message.edition!=null&&message.hasOwnProperty("edition"))object.edition=options.enums===String?$root.google.protobuf.Edition[message.edition]===undefined?message.edition:$root.google.protobuf.Edition[message.edition]:message.edition;return object};EditionDefault.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EditionDefault.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldOptions.EditionDefault"};return EditionDefault}();FieldOptions.FeatureSupport=function(){function FeatureSupport(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FeatureSupport.prototype.editionIntroduced=0;FeatureSupport.prototype.editionDeprecated=0;FeatureSupport.prototype.deprecationWarning="";FeatureSupport.prototype.editionRemoved=0;FeatureSupport.prototype.removalError="";FeatureSupport.create=function create(properties){return new FeatureSupport(properties)};FeatureSupport.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.editionIntroduced!=null&&Object.hasOwnProperty.call(message,"editionIntroduced"))writer.uint32(8).int32(message.editionIntroduced);if(message.editionDeprecated!=null&&Object.hasOwnProperty.call(message,"editionDeprecated"))writer.uint32(16).int32(message.editionDeprecated);if(message.deprecationWarning!=null&&Object.hasOwnProperty.call(message,"deprecationWarning"))writer.uint32(26).string(message.deprecationWarning);if(message.editionRemoved!=null&&Object.hasOwnProperty.call(message,"editionRemoved"))writer.uint32(32).int32(message.editionRemoved);if(message.removalError!=null&&Object.hasOwnProperty.call(message,"removalError"))writer.uint32(42).string(message.removalError);return writer};FeatureSupport.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FeatureSupport.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldOptions.FeatureSupport;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.editionIntroduced=reader.int32();break}case 2:{message.editionDeprecated=reader.int32();break}case 3:{message.deprecationWarning=reader.string();break}case 4:{message.editionRemoved=reader.int32();break}case 5:{message.removalError=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};FeatureSupport.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSupport.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.editionIntroduced!=null&&message.hasOwnProperty("editionIntroduced"))switch(message.editionIntroduced){default:return"editionIntroduced: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.editionDeprecated!=null&&message.hasOwnProperty("editionDeprecated"))switch(message.editionDeprecated){default:return"editionDeprecated: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.deprecationWarning!=null&&message.hasOwnProperty("deprecationWarning"))if(!$util.isString(message.deprecationWarning))return"deprecationWarning: string expected";if(message.editionRemoved!=null&&message.hasOwnProperty("editionRemoved"))switch(message.editionRemoved){default:return"editionRemoved: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.removalError!=null&&message.hasOwnProperty("removalError"))if(!$util.isString(message.removalError))return"removalError: string expected";return null};FeatureSupport.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldOptions.FeatureSupport)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldOptions.FeatureSupport;switch(object.editionIntroduced){default:if(typeof object.editionIntroduced==="number"){message.editionIntroduced=object.editionIntroduced;break}break;case"EDITION_UNKNOWN":case 0:message.editionIntroduced=0;break;case"EDITION_LEGACY":case 900:message.editionIntroduced=900;break;case"EDITION_PROTO2":case 998:message.editionIntroduced=998;break;case"EDITION_PROTO3":case 999:message.editionIntroduced=999;break;case"EDITION_2023":case 1e3:message.editionIntroduced=1e3;break;case"EDITION_2024":case 1001:message.editionIntroduced=1001;break;case"EDITION_2026":case 1002:message.editionIntroduced=1002;break;case"EDITION_UNSTABLE":case 9999:message.editionIntroduced=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.editionIntroduced=1;break;case"EDITION_2_TEST_ONLY":case 2:message.editionIntroduced=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.editionIntroduced=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.editionIntroduced=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.editionIntroduced=99999;break;case"EDITION_MAX":case 2147483647:message.editionIntroduced=2147483647;break}switch(object.editionDeprecated){default:if(typeof object.editionDeprecated==="number"){message.editionDeprecated=object.editionDeprecated;break}break;case"EDITION_UNKNOWN":case 0:message.editionDeprecated=0;break;case"EDITION_LEGACY":case 900:message.editionDeprecated=900;break;case"EDITION_PROTO2":case 998:message.editionDeprecated=998;break;case"EDITION_PROTO3":case 999:message.editionDeprecated=999;break;case"EDITION_2023":case 1e3:message.editionDeprecated=1e3;break;case"EDITION_2024":case 1001:message.editionDeprecated=1001;break;case"EDITION_2026":case 1002:message.editionDeprecated=1002;break;case"EDITION_UNSTABLE":case 9999:message.editionDeprecated=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.editionDeprecated=1;break;case"EDITION_2_TEST_ONLY":case 2:message.editionDeprecated=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.editionDeprecated=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.editionDeprecated=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.editionDeprecated=99999;break;case"EDITION_MAX":case 2147483647:message.editionDeprecated=2147483647;break}if(object.deprecationWarning!=null)message.deprecationWarning=String(object.deprecationWarning);switch(object.editionRemoved){default:if(typeof object.editionRemoved==="number"){message.editionRemoved=object.editionRemoved;break}break;case"EDITION_UNKNOWN":case 0:message.editionRemoved=0;break;case"EDITION_LEGACY":case 900:message.editionRemoved=900;break;case"EDITION_PROTO2":case 998:message.editionRemoved=998;break;case"EDITION_PROTO3":case 999:message.editionRemoved=999;break;case"EDITION_2023":case 1e3:message.editionRemoved=1e3;break;case"EDITION_2024":case 1001:message.editionRemoved=1001;break;case"EDITION_2026":case 1002:message.editionRemoved=1002;break;case"EDITION_UNSTABLE":case 9999:message.editionRemoved=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.editionRemoved=1;break;case"EDITION_2_TEST_ONLY":case 2:message.editionRemoved=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.editionRemoved=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.editionRemoved=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.editionRemoved=99999;break;case"EDITION_MAX":case 2147483647:message.editionRemoved=2147483647;break}if(object.removalError!=null)message.removalError=String(object.removalError);return message};FeatureSupport.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.editionIntroduced=options.enums===String?"EDITION_UNKNOWN":0;object.editionDeprecated=options.enums===String?"EDITION_UNKNOWN":0;object.deprecationWarning="";object.editionRemoved=options.enums===String?"EDITION_UNKNOWN":0;object.removalError=""}if(message.editionIntroduced!=null&&message.hasOwnProperty("editionIntroduced"))object.editionIntroduced=options.enums===String?$root.google.protobuf.Edition[message.editionIntroduced]===undefined?message.editionIntroduced:$root.google.protobuf.Edition[message.editionIntroduced]:message.editionIntroduced;if(message.editionDeprecated!=null&&message.hasOwnProperty("editionDeprecated"))object.editionDeprecated=options.enums===String?$root.google.protobuf.Edition[message.editionDeprecated]===undefined?message.editionDeprecated:$root.google.protobuf.Edition[message.editionDeprecated]:message.editionDeprecated;if(message.deprecationWarning!=null&&message.hasOwnProperty("deprecationWarning"))object.deprecationWarning=message.deprecationWarning;if(message.editionRemoved!=null&&message.hasOwnProperty("editionRemoved"))object.editionRemoved=options.enums===String?$root.google.protobuf.Edition[message.editionRemoved]===undefined?message.editionRemoved:$root.google.protobuf.Edition[message.editionRemoved]:message.editionRemoved;if(message.removalError!=null&&message.hasOwnProperty("removalError"))object.removalError=message.removalError;return object};FeatureSupport.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSupport.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldOptions.FeatureSupport"};return FeatureSupport}();return FieldOptions}();protobuf.OneofOptions=function(){function OneofOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}OneofOptions.prototype.features=null;OneofOptions.prototype.uninterpretedOption=$util.emptyArray;OneofOptions.create=function create(properties){return new OneofOptions(properties)};OneofOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(10).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();return writer};OneofOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};OneofOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.OneofOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};OneofOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};OneofOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}return null};OneofOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.OneofOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.OneofOptions;if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.OneofOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}return message};OneofOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.uninterpretedOption=[];if(options.defaults)object.features=null;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}return object};OneofOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};OneofOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.OneofOptions"};return OneofOptions}();protobuf.EnumOptions=function(){function EnumOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}EnumOptions.prototype.allowAlias=false;EnumOptions.prototype.deprecated=false;EnumOptions.prototype.deprecatedLegacyJsonFieldConflicts=false;EnumOptions.prototype.features=null;EnumOptions.prototype.uninterpretedOption=$util.emptyArray;EnumOptions.create=function create(properties){return new EnumOptions(properties)};EnumOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.allowAlias!=null&&Object.hasOwnProperty.call(message,"allowAlias"))writer.uint32(16).bool(message.allowAlias);if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(24).bool(message.deprecated);if(message.deprecatedLegacyJsonFieldConflicts!=null&&Object.hasOwnProperty.call(message,"deprecatedLegacyJsonFieldConflicts"))writer.uint32(48).bool(message.deprecatedLegacyJsonFieldConflicts);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(58).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();return writer};EnumOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};EnumOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 2:{message.allowAlias=reader.bool();break}case 3:{message.deprecated=reader.bool();break}case 6:{message.deprecatedLegacyJsonFieldConflicts=reader.bool();break}case 7:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};EnumOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.allowAlias!=null&&message.hasOwnProperty("allowAlias"))if(typeof message.allowAlias!=="boolean")return"allowAlias: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.deprecatedLegacyJsonFieldConflicts!=null&&message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts"))if(typeof message.deprecatedLegacyJsonFieldConflicts!=="boolean")return"deprecatedLegacyJsonFieldConflicts: boolean expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}return null};EnumOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumOptions;if(object.allowAlias!=null)message.allowAlias=Boolean(object.allowAlias);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.deprecatedLegacyJsonFieldConflicts!=null)message.deprecatedLegacyJsonFieldConflicts=Boolean(object.deprecatedLegacyJsonFieldConflicts);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.EnumOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}return message};EnumOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.uninterpretedOption=[];if(options.defaults){object.allowAlias=false;object.deprecated=false;object.deprecatedLegacyJsonFieldConflicts=false;object.features=null}if(message.allowAlias!=null&&message.hasOwnProperty("allowAlias"))object.allowAlias=message.allowAlias;if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.deprecatedLegacyJsonFieldConflicts!=null&&message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts"))object.deprecatedLegacyJsonFieldConflicts=message.deprecatedLegacyJsonFieldConflicts;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}return object};EnumOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumOptions"};return EnumOptions}();protobuf.EnumValueOptions=function(){function EnumValueOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}EnumValueOptions.prototype.deprecated=false;EnumValueOptions.prototype.features=null;EnumValueOptions.prototype.debugRedact=false;EnumValueOptions.prototype.featureSupport=null;EnumValueOptions.prototype.uninterpretedOption=$util.emptyArray;EnumValueOptions.create=function create(properties){return new EnumValueOptions(properties)};EnumValueOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(8).bool(message.deprecated);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(18).fork()).ldelim();if(message.debugRedact!=null&&Object.hasOwnProperty.call(message,"debugRedact"))writer.uint32(24).bool(message.debugRedact);if(message.featureSupport!=null&&Object.hasOwnProperty.call(message,"featureSupport"))$root.google.protobuf.FieldOptions.FeatureSupport.encode(message.featureSupport,writer.uint32(34).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();return writer};EnumValueOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};EnumValueOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumValueOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.deprecated=reader.bool();break}case 2:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.debugRedact=reader.bool();break}case 4:{message.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};EnumValueOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumValueOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.debugRedact!=null&&message.hasOwnProperty("debugRedact"))if(typeof message.debugRedact!=="boolean")return"debugRedact: boolean expected";if(message.featureSupport!=null&&message.hasOwnProperty("featureSupport")){var error=$root.google.protobuf.FieldOptions.FeatureSupport.verify(message.featureSupport,long+1);if(error)return"featureSupport."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}return null};EnumValueOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumValueOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumValueOptions;if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.EnumValueOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.debugRedact!=null)message.debugRedact=Boolean(object.debugRedact);if(object.featureSupport!=null){if(typeof object.featureSupport!=="object")throw TypeError(".google.protobuf.EnumValueOptions.featureSupport: object expected");message.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.fromObject(object.featureSupport,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}return message};EnumValueOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.uninterpretedOption=[];if(options.defaults){object.deprecated=false;object.features=null;object.debugRedact=false;object.featureSupport=null}if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.debugRedact!=null&&message.hasOwnProperty("debugRedact"))object.debugRedact=message.debugRedact;if(message.featureSupport!=null&&message.hasOwnProperty("featureSupport"))object.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.toObject(message.featureSupport,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}return object};EnumValueOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumValueOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumValueOptions"};return EnumValueOptions}();protobuf.ServiceOptions=function(){function ServiceOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ServiceOptions.prototype.features=null;ServiceOptions.prototype.deprecated=false;ServiceOptions.prototype.uninterpretedOption=$util.emptyArray;ServiceOptions.prototype[".google.api.defaultHost"]="";ServiceOptions.prototype[".google.api.oauthScopes"]="";ServiceOptions.prototype[".google.api.apiVersion"]="";ServiceOptions.create=function create(properties){return new ServiceOptions(properties)};ServiceOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(264).bool(message.deprecated);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(274).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();if(message[".google.api.defaultHost"]!=null&&Object.hasOwnProperty.call(message,".google.api.defaultHost"))writer.uint32(8394).string(message[".google.api.defaultHost"]);if(message[".google.api.oauthScopes"]!=null&&Object.hasOwnProperty.call(message,".google.api.oauthScopes"))writer.uint32(8402).string(message[".google.api.oauthScopes"]);if(message[".google.api.apiVersion"]!=null&&Object.hasOwnProperty.call(message,".google.api.apiVersion"))writer.uint32(4200000010).string(message[".google.api.apiVersion"]);return writer};ServiceOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ServiceOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ServiceOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 34:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 33:{message.deprecated=reader.bool();break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 1049:{message[".google.api.defaultHost"]=reader.string();break}case 1050:{message[".google.api.oauthScopes"]=reader.string();break}case 525000001:{message[".google.api.apiVersion"]=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ServiceOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ServiceOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}if(message[".google.api.defaultHost"]!=null&&message.hasOwnProperty(".google.api.defaultHost"))if(!$util.isString(message[".google.api.defaultHost"]))return".google.api.defaultHost: string expected";if(message[".google.api.oauthScopes"]!=null&&message.hasOwnProperty(".google.api.oauthScopes"))if(!$util.isString(message[".google.api.oauthScopes"]))return".google.api.oauthScopes: string expected";if(message[".google.api.apiVersion"]!=null&&message.hasOwnProperty(".google.api.apiVersion"))if(!$util.isString(message[".google.api.apiVersion"]))return".google.api.apiVersion: string expected";return null};ServiceOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.ServiceOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ServiceOptions;if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.ServiceOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}if(object[".google.api.defaultHost"]!=null)message[".google.api.defaultHost"]=String(object[".google.api.defaultHost"]);if(object[".google.api.oauthScopes"]!=null)message[".google.api.oauthScopes"]=String(object[".google.api.oauthScopes"]);if(object[".google.api.apiVersion"]!=null)message[".google.api.apiVersion"]=String(object[".google.api.apiVersion"]);return message};ServiceOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.uninterpretedOption=[];if(options.defaults){object.deprecated=false;object.features=null;object[".google.api.defaultHost"]="";object[".google.api.oauthScopes"]="";object[".google.api.apiVersion"]=""}if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}if(message[".google.api.defaultHost"]!=null&&message.hasOwnProperty(".google.api.defaultHost"))object[".google.api.defaultHost"]=message[".google.api.defaultHost"];if(message[".google.api.oauthScopes"]!=null&&message.hasOwnProperty(".google.api.oauthScopes"))object[".google.api.oauthScopes"]=message[".google.api.oauthScopes"];if(message[".google.api.apiVersion"]!=null&&message.hasOwnProperty(".google.api.apiVersion"))object[".google.api.apiVersion"]=message[".google.api.apiVersion"];return object};ServiceOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ServiceOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.ServiceOptions"};return ServiceOptions}();protobuf.MethodOptions=function(){function MethodOptions(properties){this.uninterpretedOption=[];this[".google.api.methodSignature"]=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}MethodOptions.prototype.deprecated=false;MethodOptions.prototype.idempotencyLevel=0;MethodOptions.prototype.features=null;MethodOptions.prototype.uninterpretedOption=$util.emptyArray;MethodOptions.prototype[".google.api.http"]=null;MethodOptions.prototype[".google.api.methodSignature"]=$util.emptyArray;MethodOptions.create=function create(properties){return new MethodOptions(properties)};MethodOptions.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.deprecated!=null&&Object.hasOwnProperty.call(message,"deprecated"))writer.uint32(264).bool(message.deprecated);if(message.idempotencyLevel!=null&&Object.hasOwnProperty.call(message,"idempotencyLevel"))writer.uint32(272).int32(message.idempotencyLevel);if(message.features!=null&&Object.hasOwnProperty.call(message,"features"))$root.google.protobuf.FeatureSet.encode(message.features,writer.uint32(282).fork()).ldelim();if(message.uninterpretedOption!=null&&message.uninterpretedOption.length)for(var i=0;i<message.uninterpretedOption.length;++i)$root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i],writer.uint32(7994).fork()).ldelim();if(message[".google.api.methodSignature"]!=null&&message[".google.api.methodSignature"].length)for(var i=0;i<message[".google.api.methodSignature"].length;++i)writer.uint32(8410).string(message[".google.api.methodSignature"][i]);if(message[".google.api.http"]!=null&&Object.hasOwnProperty.call(message,".google.api.http"))$root.google.api.HttpRule.encode(message[".google.api.http"],writer.uint32(578365826).fork()).ldelim();return writer};MethodOptions.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};MethodOptions.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.MethodOptions;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 33:{message.deprecated=reader.bool();break}case 34:{message.idempotencyLevel=reader.int32();break}case 35:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 72295728:{message[".google.api.http"]=$root.google.api.HttpRule.decode(reader,reader.uint32(),undefined,long+1);break}case 1051:{if(!(message[".google.api.methodSignature"]&&message[".google.api.methodSignature"].length))message[".google.api.methodSignature"]=[];message[".google.api.methodSignature"].push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};MethodOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MethodOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.idempotencyLevel!=null&&message.hasOwnProperty("idempotencyLevel"))switch(message.idempotencyLevel){default:return"idempotencyLevel: enum value expected";case 0:case 1:case 2:break}if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i<message.uninterpretedOption.length;++i){var error=$root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i],long+1);if(error)return"uninterpretedOption."+error}}if(message[".google.api.http"]!=null&&message.hasOwnProperty(".google.api.http")){var error=$root.google.api.HttpRule.verify(message[".google.api.http"],long+1);if(error)return".google.api.http."+error}if(message[".google.api.methodSignature"]!=null&&message.hasOwnProperty(".google.api.methodSignature")){if(!Array.isArray(message[".google.api.methodSignature"]))return".google.api.methodSignature: array expected";for(var i=0;i<message[".google.api.methodSignature"].length;++i)if(!$util.isString(message[".google.api.methodSignature"][i]))return".google.api.methodSignature: string[] expected"}return null};MethodOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.MethodOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.MethodOptions;if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);switch(object.idempotencyLevel){default:if(typeof object.idempotencyLevel==="number"){message.idempotencyLevel=object.idempotencyLevel;break}break;case"IDEMPOTENCY_UNKNOWN":case 0:message.idempotencyLevel=0;break;case"NO_SIDE_EFFECTS":case 1:message.idempotencyLevel=1;break;case"IDEMPOTENT":case 2:message.idempotencyLevel=2;break}if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.MethodOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i<object.uninterpretedOption.length;++i){if(typeof object.uninterpretedOption[i]!=="object")throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: object expected");message.uninterpretedOption[i]=$root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i],long+1)}}if(object[".google.api.http"]!=null){if(typeof object[".google.api.http"]!=="object")throw TypeError(".google.protobuf.MethodOptions..google.api.http: object expected");message[".google.api.http"]=$root.google.api.HttpRule.fromObject(object[".google.api.http"],long+1)}if(object[".google.api.methodSignature"]){if(!Array.isArray(object[".google.api.methodSignature"]))throw TypeError(".google.protobuf.MethodOptions..google.api.methodSignature: array expected");message[".google.api.methodSignature"]=[];for(var i=0;i<object[".google.api.methodSignature"].length;++i)message[".google.api.methodSignature"][i]=String(object[".google.api.methodSignature"][i])}return message};MethodOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.uninterpretedOption=[];object[".google.api.methodSignature"]=[]}if(options.defaults){object.deprecated=false;object.idempotencyLevel=options.enums===String?"IDEMPOTENCY_UNKNOWN":0;object.features=null;object[".google.api.http"]=null}if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))object.deprecated=message.deprecated;if(message.idempotencyLevel!=null&&message.hasOwnProperty("idempotencyLevel"))object.idempotencyLevel=options.enums===String?$root.google.protobuf.MethodOptions.IdempotencyLevel[message.idempotencyLevel]===undefined?message.idempotencyLevel:$root.google.protobuf.MethodOptions.IdempotencyLevel[message.idempotencyLevel]:message.idempotencyLevel;if(message.features!=null&&message.hasOwnProperty("features"))object.features=$root.google.protobuf.FeatureSet.toObject(message.features,options);if(message.uninterpretedOption&&message.uninterpretedOption.length){object.uninterpretedOption=[];for(var j=0;j<message.uninterpretedOption.length;++j)object.uninterpretedOption[j]=$root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j],options)}if(message[".google.api.methodSignature"]&&message[".google.api.methodSignature"].length){object[".google.api.methodSignature"]=[];for(var j=0;j<message[".google.api.methodSignature"].length;++j)object[".google.api.methodSignature"][j]=message[".google.api.methodSignature"][j]}if(message[".google.api.http"]!=null&&message.hasOwnProperty(".google.api.http"))object[".google.api.http"]=$root.google.api.HttpRule.toObject(message[".google.api.http"],options);return object};MethodOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};MethodOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.MethodOptions"};MethodOptions.IdempotencyLevel=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="IDEMPOTENCY_UNKNOWN"]=0;values[valuesById[1]="NO_SIDE_EFFECTS"]=1;values[valuesById[2]="IDEMPOTENT"]=2;return values}();return MethodOptions}();protobuf.UninterpretedOption=function(){function UninterpretedOption(properties){this.name=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}UninterpretedOption.prototype.name=$util.emptyArray;UninterpretedOption.prototype.identifierValue="";UninterpretedOption.prototype.positiveIntValue=$util.Long?$util.Long.fromBits(0,0,true):0;UninterpretedOption.prototype.negativeIntValue=$util.Long?$util.Long.fromBits(0,0,false):0;UninterpretedOption.prototype.doubleValue=0;UninterpretedOption.prototype.stringValue=$util.newBuffer([]);UninterpretedOption.prototype.aggregateValue="";UninterpretedOption.create=function create(properties){return new UninterpretedOption(properties)};UninterpretedOption.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&message.name.length)for(var i=0;i<message.name.length;++i)$root.google.protobuf.UninterpretedOption.NamePart.encode(message.name[i],writer.uint32(18).fork()).ldelim();if(message.identifierValue!=null&&Object.hasOwnProperty.call(message,"identifierValue"))writer.uint32(26).string(message.identifierValue);if(message.positiveIntValue!=null&&Object.hasOwnProperty.call(message,"positiveIntValue"))writer.uint32(32).uint64(message.positiveIntValue);if(message.negativeIntValue!=null&&Object.hasOwnProperty.call(message,"negativeIntValue"))writer.uint32(40).int64(message.negativeIntValue);if(message.doubleValue!=null&&Object.hasOwnProperty.call(message,"doubleValue"))writer.uint32(49).double(message.doubleValue);if(message.stringValue!=null&&Object.hasOwnProperty.call(message,"stringValue"))writer.uint32(58).bytes(message.stringValue);if(message.aggregateValue!=null&&Object.hasOwnProperty.call(message,"aggregateValue"))writer.uint32(66).string(message.aggregateValue);return writer};UninterpretedOption.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};UninterpretedOption.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UninterpretedOption;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 2:{if(!(message.name&&message.name.length))message.name=[];message.name.push($root.google.protobuf.UninterpretedOption.NamePart.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.identifierValue=reader.string();break}case 4:{message.positiveIntValue=reader.uint64();break}case 5:{message.negativeIntValue=reader.int64();break}case 6:{message.doubleValue=reader.double();break}case 7:{message.stringValue=reader.bytes();break}case 8:{message.aggregateValue=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};UninterpretedOption.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UninterpretedOption.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name")){if(!Array.isArray(message.name))return"name: array expected";for(var i=0;i<message.name.length;++i){var error=$root.google.protobuf.UninterpretedOption.NamePart.verify(message.name[i],long+1);if(error)return"name."+error}}if(message.identifierValue!=null&&message.hasOwnProperty("identifierValue"))if(!$util.isString(message.identifierValue))return"identifierValue: string expected";if(message.positiveIntValue!=null&&message.hasOwnProperty("positiveIntValue"))if(!$util.isInteger(message.positiveIntValue)&&!(message.positiveIntValue&&$util.isInteger(message.positiveIntValue.low)&&$util.isInteger(message.positiveIntValue.high)))return"positiveIntValue: integer|Long expected";if(message.negativeIntValue!=null&&message.hasOwnProperty("negativeIntValue"))if(!$util.isInteger(message.negativeIntValue)&&!(message.negativeIntValue&&$util.isInteger(message.negativeIntValue.low)&&$util.isInteger(message.negativeIntValue.high)))return"negativeIntValue: integer|Long expected";if(message.doubleValue!=null&&message.hasOwnProperty("doubleValue"))if(typeof message.doubleValue!=="number")return"doubleValue: number expected";if(message.stringValue!=null&&message.hasOwnProperty("stringValue"))if(!(message.stringValue&&typeof message.stringValue.length==="number"||$util.isString(message.stringValue)))return"stringValue: buffer expected";if(message.aggregateValue!=null&&message.hasOwnProperty("aggregateValue"))if(!$util.isString(message.aggregateValue))return"aggregateValue: string expected";return null};UninterpretedOption.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UninterpretedOption)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UninterpretedOption;if(object.name){if(!Array.isArray(object.name))throw TypeError(".google.protobuf.UninterpretedOption.name: array expected");message.name=[];for(var i=0;i<object.name.length;++i){if(typeof object.name[i]!=="object")throw TypeError(".google.protobuf.UninterpretedOption.name: object expected");message.name[i]=$root.google.protobuf.UninterpretedOption.NamePart.fromObject(object.name[i],long+1)}}if(object.identifierValue!=null)message.identifierValue=String(object.identifierValue);if(object.positiveIntValue!=null)if($util.Long)(message.positiveIntValue=$util.Long.fromValue(object.positiveIntValue)).unsigned=true;else if(typeof object.positiveIntValue==="string")message.positiveIntValue=parseInt(object.positiveIntValue,10);else if(typeof object.positiveIntValue==="number")message.positiveIntValue=object.positiveIntValue;else if(typeof object.positiveIntValue==="object")message.positiveIntValue=new $util.LongBits(object.positiveIntValue.low>>>0,object.positiveIntValue.high>>>0).toNumber(true);if(object.negativeIntValue!=null)if($util.Long)(message.negativeIntValue=$util.Long.fromValue(object.negativeIntValue)).unsigned=false;else if(typeof object.negativeIntValue==="string")message.negativeIntValue=parseInt(object.negativeIntValue,10);else if(typeof object.negativeIntValue==="number")message.negativeIntValue=object.negativeIntValue;else if(typeof object.negativeIntValue==="object")message.negativeIntValue=new $util.LongBits(object.negativeIntValue.low>>>0,object.negativeIntValue.high>>>0).toNumber();if(object.doubleValue!=null)message.doubleValue=Number(object.doubleValue);if(object.stringValue!=null)if(typeof object.stringValue==="string")$util.base64.decode(object.stringValue,message.stringValue=$util.newBuffer($util.base64.length(object.stringValue)),0);else if(object.stringValue.length>=0)message.stringValue=object.stringValue;if(object.aggregateValue!=null)message.aggregateValue=String(object.aggregateValue);return message};UninterpretedOption.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.name=[];if(options.defaults){object.identifierValue="";if($util.Long){var long=new $util.Long(0,0,true);object.positiveIntValue=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.positiveIntValue=options.longs===String?"0":0;if($util.Long){var long=new $util.Long(0,0,false);object.negativeIntValue=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.negativeIntValue=options.longs===String?"0":0;object.doubleValue=0;if(options.bytes===String)object.stringValue="";else{object.stringValue=[];if(options.bytes!==Array)object.stringValue=$util.newBuffer(object.stringValue)}object.aggregateValue=""}if(message.name&&message.name.length){object.name=[];for(var j=0;j<message.name.length;++j)object.name[j]=$root.google.protobuf.UninterpretedOption.NamePart.toObject(message.name[j],options)}if(message.identifierValue!=null&&message.hasOwnProperty("identifierValue"))object.identifierValue=message.identifierValue;if(message.positiveIntValue!=null&&message.hasOwnProperty("positiveIntValue"))if(typeof message.positiveIntValue==="number")object.positiveIntValue=options.longs===String?String(message.positiveIntValue):message.positiveIntValue;else object.positiveIntValue=options.longs===String?$util.Long.prototype.toString.call(message.positiveIntValue):options.longs===Number?new $util.LongBits(message.positiveIntValue.low>>>0,message.positiveIntValue.high>>>0).toNumber(true):message.positiveIntValue;if(message.negativeIntValue!=null&&message.hasOwnProperty("negativeIntValue"))if(typeof message.negativeIntValue==="number")object.negativeIntValue=options.longs===String?String(message.negativeIntValue):message.negativeIntValue;else object.negativeIntValue=options.longs===String?$util.Long.prototype.toString.call(message.negativeIntValue):options.longs===Number?new $util.LongBits(message.negativeIntValue.low>>>0,message.negativeIntValue.high>>>0).toNumber():message.negativeIntValue;if(message.doubleValue!=null&&message.hasOwnProperty("doubleValue"))object.doubleValue=options.json&&!isFinite(message.doubleValue)?String(message.doubleValue):message.doubleValue;if(message.stringValue!=null&&message.hasOwnProperty("stringValue"))object.stringValue=options.bytes===String?$util.base64.encode(message.stringValue,0,message.stringValue.length):options.bytes===Array?Array.prototype.slice.call(message.stringValue):message.stringValue;if(message.aggregateValue!=null&&message.hasOwnProperty("aggregateValue"))object.aggregateValue=message.aggregateValue;return object};UninterpretedOption.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UninterpretedOption.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UninterpretedOption"};UninterpretedOption.NamePart=function(){function NamePart(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}NamePart.prototype.namePart="";NamePart.prototype.isExtension=false;NamePart.create=function create(properties){return new NamePart(properties)};NamePart.encode=function encode(message,writer){if(!writer)writer=$Writer.create();writer.uint32(10).string(message.namePart);writer.uint32(16).bool(message.isExtension);return writer};NamePart.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};NamePart.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UninterpretedOption.NamePart;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.namePart=reader.string();break}case 2:{message.isExtension=reader.bool();break}default:reader.skipType(tag&7,long);break}}if(!message.hasOwnProperty("namePart"))throw $util.ProtocolError("missing required 'namePart'",{instance:message});if(!message.hasOwnProperty("isExtension"))throw $util.ProtocolError("missing required 'isExtension'",{instance:message});return message};NamePart.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};NamePart.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(!$util.isString(message.namePart))return"namePart: string expected";if(typeof message.isExtension!=="boolean")return"isExtension: boolean expected";return null};NamePart.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UninterpretedOption.NamePart)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UninterpretedOption.NamePart;if(object.namePart!=null)message.namePart=String(object.namePart);if(object.isExtension!=null)message.isExtension=Boolean(object.isExtension);return message};NamePart.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.namePart="";object.isExtension=false}if(message.namePart!=null&&message.hasOwnProperty("namePart"))object.namePart=message.namePart;if(message.isExtension!=null&&message.hasOwnProperty("isExtension"))object.isExtension=message.isExtension;return object};NamePart.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};NamePart.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UninterpretedOption.NamePart"};return NamePart}();return UninterpretedOption}();protobuf.FeatureSet=function(){function FeatureSet(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FeatureSet.prototype.fieldPresence=0;FeatureSet.prototype.enumType=0;FeatureSet.prototype.repeatedFieldEncoding=0;FeatureSet.prototype.utf8Validation=0;FeatureSet.prototype.messageEncoding=0;FeatureSet.prototype.jsonFormat=0;FeatureSet.prototype.enforceNamingStyle=0;FeatureSet.prototype.defaultSymbolVisibility=0;FeatureSet.prototype.enforceProtoLimits=0;FeatureSet.create=function create(properties){return new FeatureSet(properties)};FeatureSet.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.fieldPresence!=null&&Object.hasOwnProperty.call(message,"fieldPresence"))writer.uint32(8).int32(message.fieldPresence);if(message.enumType!=null&&Object.hasOwnProperty.call(message,"enumType"))writer.uint32(16).int32(message.enumType);if(message.repeatedFieldEncoding!=null&&Object.hasOwnProperty.call(message,"repeatedFieldEncoding"))writer.uint32(24).int32(message.repeatedFieldEncoding);if(message.utf8Validation!=null&&Object.hasOwnProperty.call(message,"utf8Validation"))writer.uint32(32).int32(message.utf8Validation);if(message.messageEncoding!=null&&Object.hasOwnProperty.call(message,"messageEncoding"))writer.uint32(40).int32(message.messageEncoding);if(message.jsonFormat!=null&&Object.hasOwnProperty.call(message,"jsonFormat"))writer.uint32(48).int32(message.jsonFormat);if(message.enforceNamingStyle!=null&&Object.hasOwnProperty.call(message,"enforceNamingStyle"))writer.uint32(56).int32(message.enforceNamingStyle);if(message.defaultSymbolVisibility!=null&&Object.hasOwnProperty.call(message,"defaultSymbolVisibility"))writer.uint32(64).int32(message.defaultSymbolVisibility);if(message.enforceProtoLimits!=null&&Object.hasOwnProperty.call(message,"enforceProtoLimits"))writer.uint32(72).int32(message.enforceProtoLimits);return writer};FeatureSet.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FeatureSet.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSet;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.fieldPresence=reader.int32();break}case 2:{message.enumType=reader.int32();break}case 3:{message.repeatedFieldEncoding=reader.int32();break}case 4:{message.utf8Validation=reader.int32();break}case 5:{message.messageEncoding=reader.int32();break}case 6:{message.jsonFormat=reader.int32();break}case 7:{message.enforceNamingStyle=reader.int32();break}case 8:{message.defaultSymbolVisibility=reader.int32();break}case 9:{message.enforceProtoLimits=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FeatureSet.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSet.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fieldPresence!=null&&message.hasOwnProperty("fieldPresence"))switch(message.fieldPresence){default:return"fieldPresence: enum value expected";case 0:case 1:case 2:case 3:break}if(message.enumType!=null&&message.hasOwnProperty("enumType"))switch(message.enumType){default:return"enumType: enum value expected";case 0:case 1:case 2:break}if(message.repeatedFieldEncoding!=null&&message.hasOwnProperty("repeatedFieldEncoding"))switch(message.repeatedFieldEncoding){default:return"repeatedFieldEncoding: enum value expected";case 0:case 1:case 2:break}if(message.utf8Validation!=null&&message.hasOwnProperty("utf8Validation"))switch(message.utf8Validation){default:return"utf8Validation: enum value expected";case 0:case 2:case 3:break}if(message.messageEncoding!=null&&message.hasOwnProperty("messageEncoding"))switch(message.messageEncoding){default:return"messageEncoding: enum value expected";case 0:case 1:case 2:break}if(message.jsonFormat!=null&&message.hasOwnProperty("jsonFormat"))switch(message.jsonFormat){default:return"jsonFormat: enum value expected";case 0:case 1:case 2:break}if(message.enforceNamingStyle!=null&&message.hasOwnProperty("enforceNamingStyle"))switch(message.enforceNamingStyle){default:return"enforceNamingStyle: enum value expected";case 0:case 1:case 2:case 3:break}if(message.defaultSymbolVisibility!=null&&message.hasOwnProperty("defaultSymbolVisibility"))switch(message.defaultSymbolVisibility){default:return"defaultSymbolVisibility: enum value expected";case 0:case 1:case 2:case 3:case 4:break}if(message.enforceProtoLimits!=null&&message.hasOwnProperty("enforceProtoLimits"))switch(message.enforceProtoLimits){default:return"enforceProtoLimits: enum value expected";case 0:case 1:case 2:break}return null};FeatureSet.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSet)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FeatureSet;switch(object.fieldPresence){default:if(typeof object.fieldPresence==="number"){message.fieldPresence=object.fieldPresence;break}break;case"FIELD_PRESENCE_UNKNOWN":case 0:message.fieldPresence=0;break;case"EXPLICIT":case 1:message.fieldPresence=1;break;case"IMPLICIT":case 2:message.fieldPresence=2;break;case"LEGACY_REQUIRED":case 3:message.fieldPresence=3;break}switch(object.enumType){default:if(typeof object.enumType==="number"){message.enumType=object.enumType;break}break;case"ENUM_TYPE_UNKNOWN":case 0:message.enumType=0;break;case"OPEN":case 1:message.enumType=1;break;case"CLOSED":case 2:message.enumType=2;break}switch(object.repeatedFieldEncoding){default:if(typeof object.repeatedFieldEncoding==="number"){message.repeatedFieldEncoding=object.repeatedFieldEncoding;break}break;case"REPEATED_FIELD_ENCODING_UNKNOWN":case 0:message.repeatedFieldEncoding=0;break;case"PACKED":case 1:message.repeatedFieldEncoding=1;break;case"EXPANDED":case 2:message.repeatedFieldEncoding=2;break}switch(object.utf8Validation){default:if(typeof object.utf8Validation==="number"){message.utf8Validation=object.utf8Validation;break}break;case"UTF8_VALIDATION_UNKNOWN":case 0:message.utf8Validation=0;break;case"VERIFY":case 2:message.utf8Validation=2;break;case"NONE":case 3:message.utf8Validation=3;break}switch(object.messageEncoding){default:if(typeof object.messageEncoding==="number"){message.messageEncoding=object.messageEncoding;break}break;case"MESSAGE_ENCODING_UNKNOWN":case 0:message.messageEncoding=0;break;case"LENGTH_PREFIXED":case 1:message.messageEncoding=1;break;case"DELIMITED":case 2:message.messageEncoding=2;break}switch(object.jsonFormat){default:if(typeof object.jsonFormat==="number"){message.jsonFormat=object.jsonFormat;break}break;case"JSON_FORMAT_UNKNOWN":case 0:message.jsonFormat=0;break;case"ALLOW":case 1:message.jsonFormat=1;break;case"LEGACY_BEST_EFFORT":case 2:message.jsonFormat=2;break}switch(object.enforceNamingStyle){default:if(typeof object.enforceNamingStyle==="number"){message.enforceNamingStyle=object.enforceNamingStyle;break}break;case"ENFORCE_NAMING_STYLE_UNKNOWN":case 0:message.enforceNamingStyle=0;break;case"STYLE2024":case 1:message.enforceNamingStyle=1;break;case"STYLE_LEGACY":case 2:message.enforceNamingStyle=2;break;case"STYLE2026":case 3:message.enforceNamingStyle=3;break}switch(object.defaultSymbolVisibility){default:if(typeof object.defaultSymbolVisibility==="number"){message.defaultSymbolVisibility=object.defaultSymbolVisibility;break}break;case"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN":case 0:message.defaultSymbolVisibility=0;break;case"EXPORT_ALL":case 1:message.defaultSymbolVisibility=1;break;case"EXPORT_TOP_LEVEL":case 2:message.defaultSymbolVisibility=2;break;case"LOCAL_ALL":case 3:message.defaultSymbolVisibility=3;break;case"STRICT":case 4:message.defaultSymbolVisibility=4;break}switch(object.enforceProtoLimits){default:if(typeof object.enforceProtoLimits==="number"){message.enforceProtoLimits=object.enforceProtoLimits;break}break;case"PROTO_LIMITS_UNKNOWN":case 0:message.enforceProtoLimits=0;break;case"LEGACY_NO_EXPLICIT_LIMITS":case 1:message.enforceProtoLimits=1;break;case"PROTO_LIMITS2026":case 2:message.enforceProtoLimits=2;break}return message};FeatureSet.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.fieldPresence=options.enums===String?"FIELD_PRESENCE_UNKNOWN":0;object.enumType=options.enums===String?"ENUM_TYPE_UNKNOWN":0;object.repeatedFieldEncoding=options.enums===String?"REPEATED_FIELD_ENCODING_UNKNOWN":0;object.utf8Validation=options.enums===String?"UTF8_VALIDATION_UNKNOWN":0;object.messageEncoding=options.enums===String?"MESSAGE_ENCODING_UNKNOWN":0;object.jsonFormat=options.enums===String?"JSON_FORMAT_UNKNOWN":0;object.enforceNamingStyle=options.enums===String?"ENFORCE_NAMING_STYLE_UNKNOWN":0;object.defaultSymbolVisibility=options.enums===String?"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN":0;object.enforceProtoLimits=options.enums===String?"PROTO_LIMITS_UNKNOWN":0}if(message.fieldPresence!=null&&message.hasOwnProperty("fieldPresence"))object.fieldPresence=options.enums===String?$root.google.protobuf.FeatureSet.FieldPresence[message.fieldPresence]===undefined?message.fieldPresence:$root.google.protobuf.FeatureSet.FieldPresence[message.fieldPresence]:message.fieldPresence;if(message.enumType!=null&&message.hasOwnProperty("enumType"))object.enumType=options.enums===String?$root.google.protobuf.FeatureSet.EnumType[message.enumType]===undefined?message.enumType:$root.google.protobuf.FeatureSet.EnumType[message.enumType]:message.enumType;if(message.repeatedFieldEncoding!=null&&message.hasOwnProperty("repeatedFieldEncoding"))object.repeatedFieldEncoding=options.enums===String?$root.google.protobuf.FeatureSet.RepeatedFieldEncoding[message.repeatedFieldEncoding]===undefined?message.repeatedFieldEncoding:$root.google.protobuf.FeatureSet.RepeatedFieldEncoding[message.repeatedFieldEncoding]:message.repeatedFieldEncoding;if(message.utf8Validation!=null&&message.hasOwnProperty("utf8Validation"))object.utf8Validation=options.enums===String?$root.google.protobuf.FeatureSet.Utf8Validation[message.utf8Validation]===undefined?message.utf8Validation:$root.google.protobuf.FeatureSet.Utf8Validation[message.utf8Validation]:message.utf8Validation;if(message.messageEncoding!=null&&message.hasOwnProperty("messageEncoding"))object.messageEncoding=options.enums===String?$root.google.protobuf.FeatureSet.MessageEncoding[message.messageEncoding]===undefined?message.messageEncoding:$root.google.protobuf.FeatureSet.MessageEncoding[message.messageEncoding]:message.messageEncoding;if(message.jsonFormat!=null&&message.hasOwnProperty("jsonFormat"))object.jsonFormat=options.enums===String?$root.google.protobuf.FeatureSet.JsonFormat[message.jsonFormat]===undefined?message.jsonFormat:$root.google.protobuf.FeatureSet.JsonFormat[message.jsonFormat]:message.jsonFormat;if(message.enforceNamingStyle!=null&&message.hasOwnProperty("enforceNamingStyle"))object.enforceNamingStyle=options.enums===String?$root.google.protobuf.FeatureSet.EnforceNamingStyle[message.enforceNamingStyle]===undefined?message.enforceNamingStyle:$root.google.protobuf.FeatureSet.EnforceNamingStyle[message.enforceNamingStyle]:message.enforceNamingStyle;if(message.defaultSymbolVisibility!=null&&message.hasOwnProperty("defaultSymbolVisibility"))object.defaultSymbolVisibility=options.enums===String?$root.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility[message.defaultSymbolVisibility]===undefined?message.defaultSymbolVisibility:$root.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility[message.defaultSymbolVisibility]:message.defaultSymbolVisibility;if(message.enforceProtoLimits!=null&&message.hasOwnProperty("enforceProtoLimits"))object.enforceProtoLimits=options.enums===String?$root.google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits[message.enforceProtoLimits]===undefined?message.enforceProtoLimits:$root.google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits[message.enforceProtoLimits]:message.enforceProtoLimits;return object};FeatureSet.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSet.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSet"};FeatureSet.FieldPresence=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="FIELD_PRESENCE_UNKNOWN"]=0;values[valuesById[1]="EXPLICIT"]=1;values[valuesById[2]="IMPLICIT"]=2;values[valuesById[3]="LEGACY_REQUIRED"]=3;return values}();FeatureSet.EnumType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ENUM_TYPE_UNKNOWN"]=0;values[valuesById[1]="OPEN"]=1;values[valuesById[2]="CLOSED"]=2;return values}();FeatureSet.RepeatedFieldEncoding=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="REPEATED_FIELD_ENCODING_UNKNOWN"]=0;values[valuesById[1]="PACKED"]=1;values[valuesById[2]="EXPANDED"]=2;return values}();FeatureSet.Utf8Validation=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="UTF8_VALIDATION_UNKNOWN"]=0;values[valuesById[2]="VERIFY"]=2;values[valuesById[3]="NONE"]=3;return values}();FeatureSet.MessageEncoding=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="MESSAGE_ENCODING_UNKNOWN"]=0;values[valuesById[1]="LENGTH_PREFIXED"]=1;values[valuesById[2]="DELIMITED"]=2;return values}();FeatureSet.JsonFormat=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="JSON_FORMAT_UNKNOWN"]=0;values[valuesById[1]="ALLOW"]=1;values[valuesById[2]="LEGACY_BEST_EFFORT"]=2;return values}();FeatureSet.EnforceNamingStyle=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ENFORCE_NAMING_STYLE_UNKNOWN"]=0;values[valuesById[1]="STYLE2024"]=1;values[valuesById[2]="STYLE_LEGACY"]=2;values[valuesById[3]="STYLE2026"]=3;return values}();FeatureSet.VisibilityFeature=function(){function VisibilityFeature(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}VisibilityFeature.create=function create(properties){return new VisibilityFeature(properties)};VisibilityFeature.encode=function encode(message,writer){if(!writer)writer=$Writer.create();return writer};VisibilityFeature.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};VisibilityFeature.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSet.VisibilityFeature;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){default:reader.skipType(tag&7,long);break}}return message};VisibilityFeature.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};VisibilityFeature.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};VisibilityFeature.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSet.VisibilityFeature)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.protobuf.FeatureSet.VisibilityFeature};VisibilityFeature.toObject=function toObject(){return{}};VisibilityFeature.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};VisibilityFeature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSet.VisibilityFeature"};VisibilityFeature.DefaultSymbolVisibility=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN"]=0;values[valuesById[1]="EXPORT_ALL"]=1;values[valuesById[2]="EXPORT_TOP_LEVEL"]=2;values[valuesById[3]="LOCAL_ALL"]=3;values[valuesById[4]="STRICT"]=4;return values}();return VisibilityFeature}();FeatureSet.ProtoLimitsFeature=function(){function ProtoLimitsFeature(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ProtoLimitsFeature.create=function create(properties){return new ProtoLimitsFeature(properties)};ProtoLimitsFeature.encode=function encode(message,writer){if(!writer)writer=$Writer.create();return writer};ProtoLimitsFeature.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ProtoLimitsFeature.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSet.ProtoLimitsFeature;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){default:reader.skipType(tag&7,long);break}}return message};ProtoLimitsFeature.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ProtoLimitsFeature.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};ProtoLimitsFeature.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSet.ProtoLimitsFeature)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.protobuf.FeatureSet.ProtoLimitsFeature};ProtoLimitsFeature.toObject=function toObject(){return{}};ProtoLimitsFeature.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ProtoLimitsFeature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSet.ProtoLimitsFeature"};ProtoLimitsFeature.EnforceProtoLimits=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="PROTO_LIMITS_UNKNOWN"]=0;values[valuesById[1]="LEGACY_NO_EXPLICIT_LIMITS"]=1;values[valuesById[2]="PROTO_LIMITS2026"]=2;return values}();return ProtoLimitsFeature}();return FeatureSet}();protobuf.FeatureSetDefaults=function(){function FeatureSetDefaults(properties){this.defaults=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FeatureSetDefaults.prototype.defaults=$util.emptyArray;FeatureSetDefaults.prototype.minimumEdition=0;FeatureSetDefaults.prototype.maximumEdition=0;FeatureSetDefaults.create=function create(properties){return new FeatureSetDefaults(properties)};FeatureSetDefaults.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.defaults!=null&&message.defaults.length)for(var i=0;i<message.defaults.length;++i)$root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.encode(message.defaults[i],writer.uint32(10).fork()).ldelim();if(message.minimumEdition!=null&&Object.hasOwnProperty.call(message,"minimumEdition"))writer.uint32(32).int32(message.minimumEdition);if(message.maximumEdition!=null&&Object.hasOwnProperty.call(message,"maximumEdition"))writer.uint32(40).int32(message.maximumEdition);return writer};FeatureSetDefaults.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FeatureSetDefaults.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSetDefaults;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.defaults&&message.defaults.length))message.defaults=[];message.defaults.push($root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.minimumEdition=reader.int32();break}case 5:{message.maximumEdition=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FeatureSetDefaults.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSetDefaults.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.defaults!=null&&message.hasOwnProperty("defaults")){if(!Array.isArray(message.defaults))return"defaults: array expected";for(var i=0;i<message.defaults.length;++i){var error=$root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.verify(message.defaults[i],long+1);if(error)return"defaults."+error}}if(message.minimumEdition!=null&&message.hasOwnProperty("minimumEdition"))switch(message.minimumEdition){default:return"minimumEdition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.maximumEdition!=null&&message.hasOwnProperty("maximumEdition"))switch(message.maximumEdition){default:return"maximumEdition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}return null};FeatureSetDefaults.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSetDefaults)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FeatureSetDefaults;if(object.defaults){if(!Array.isArray(object.defaults))throw TypeError(".google.protobuf.FeatureSetDefaults.defaults: array expected");message.defaults=[];for(var i=0;i<object.defaults.length;++i){if(typeof object.defaults[i]!=="object")throw TypeError(".google.protobuf.FeatureSetDefaults.defaults: object expected");message.defaults[i]=$root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fromObject(object.defaults[i],long+1)}}switch(object.minimumEdition){default:if(typeof object.minimumEdition==="number"){message.minimumEdition=object.minimumEdition;break}break;case"EDITION_UNKNOWN":case 0:message.minimumEdition=0;break;case"EDITION_LEGACY":case 900:message.minimumEdition=900;break;case"EDITION_PROTO2":case 998:message.minimumEdition=998;break;case"EDITION_PROTO3":case 999:message.minimumEdition=999;break;case"EDITION_2023":case 1e3:message.minimumEdition=1e3;break;case"EDITION_2024":case 1001:message.minimumEdition=1001;break;case"EDITION_2026":case 1002:message.minimumEdition=1002;break;case"EDITION_UNSTABLE":case 9999:message.minimumEdition=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.minimumEdition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.minimumEdition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.minimumEdition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.minimumEdition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.minimumEdition=99999;break;case"EDITION_MAX":case 2147483647:message.minimumEdition=2147483647;break}switch(object.maximumEdition){default:if(typeof object.maximumEdition==="number"){message.maximumEdition=object.maximumEdition;break}break;case"EDITION_UNKNOWN":case 0:message.maximumEdition=0;break;case"EDITION_LEGACY":case 900:message.maximumEdition=900;break;case"EDITION_PROTO2":case 998:message.maximumEdition=998;break;case"EDITION_PROTO3":case 999:message.maximumEdition=999;break;case"EDITION_2023":case 1e3:message.maximumEdition=1e3;break;case"EDITION_2024":case 1001:message.maximumEdition=1001;break;case"EDITION_2026":case 1002:message.maximumEdition=1002;break;case"EDITION_UNSTABLE":case 9999:message.maximumEdition=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.maximumEdition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.maximumEdition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.maximumEdition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.maximumEdition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.maximumEdition=99999;break;case"EDITION_MAX":case 2147483647:message.maximumEdition=2147483647;break}return message};FeatureSetDefaults.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.defaults=[];if(options.defaults){object.minimumEdition=options.enums===String?"EDITION_UNKNOWN":0;object.maximumEdition=options.enums===String?"EDITION_UNKNOWN":0}if(message.defaults&&message.defaults.length){object.defaults=[];for(var j=0;j<message.defaults.length;++j)object.defaults[j]=$root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.toObject(message.defaults[j],options)}if(message.minimumEdition!=null&&message.hasOwnProperty("minimumEdition"))object.minimumEdition=options.enums===String?$root.google.protobuf.Edition[message.minimumEdition]===undefined?message.minimumEdition:$root.google.protobuf.Edition[message.minimumEdition]:message.minimumEdition;if(message.maximumEdition!=null&&message.hasOwnProperty("maximumEdition"))object.maximumEdition=options.enums===String?$root.google.protobuf.Edition[message.maximumEdition]===undefined?message.maximumEdition:$root.google.protobuf.Edition[message.maximumEdition]:message.maximumEdition;return object};FeatureSetDefaults.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSetDefaults.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSetDefaults"};FeatureSetDefaults.FeatureSetEditionDefault=function(){function FeatureSetEditionDefault(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FeatureSetEditionDefault.prototype.edition=0;FeatureSetEditionDefault.prototype.overridableFeatures=null;FeatureSetEditionDefault.prototype.fixedFeatures=null;FeatureSetEditionDefault.create=function create(properties){return new FeatureSetEditionDefault(properties)};FeatureSetEditionDefault.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.edition!=null&&Object.hasOwnProperty.call(message,"edition"))writer.uint32(24).int32(message.edition);if(message.overridableFeatures!=null&&Object.hasOwnProperty.call(message,"overridableFeatures"))$root.google.protobuf.FeatureSet.encode(message.overridableFeatures,writer.uint32(34).fork()).ldelim();if(message.fixedFeatures!=null&&Object.hasOwnProperty.call(message,"fixedFeatures"))$root.google.protobuf.FeatureSet.encode(message.fixedFeatures,writer.uint32(42).fork()).ldelim();return writer};FeatureSetEditionDefault.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FeatureSetEditionDefault.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 3:{message.edition=reader.int32();break}case 4:{message.overridableFeatures=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.fixedFeatures=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FeatureSetEditionDefault.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSetEditionDefault.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.edition!=null&&message.hasOwnProperty("edition"))switch(message.edition){default:return"edition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.overridableFeatures!=null&&message.hasOwnProperty("overridableFeatures")){var error=$root.google.protobuf.FeatureSet.verify(message.overridableFeatures,long+1);if(error)return"overridableFeatures."+error}if(message.fixedFeatures!=null&&message.hasOwnProperty("fixedFeatures")){var error=$root.google.protobuf.FeatureSet.verify(message.fixedFeatures,long+1);if(error)return"fixedFeatures."+error}return null};FeatureSetEditionDefault.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;switch(object.edition){default:if(typeof object.edition==="number"){message.edition=object.edition;break}break;case"EDITION_UNKNOWN":case 0:message.edition=0;break;case"EDITION_LEGACY":case 900:message.edition=900;break;case"EDITION_PROTO2":case 998:message.edition=998;break;case"EDITION_PROTO3":case 999:message.edition=999;break;case"EDITION_2023":case 1e3:message.edition=1e3;break;case"EDITION_2024":case 1001:message.edition=1001;break;case"EDITION_2026":case 1002:message.edition=1002;break;case"EDITION_UNSTABLE":case 9999:message.edition=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.edition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.edition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.edition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.edition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.edition=99999;break;case"EDITION_MAX":case 2147483647:message.edition=2147483647;break}if(object.overridableFeatures!=null){if(typeof object.overridableFeatures!=="object")throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.overridableFeatures: object expected");message.overridableFeatures=$root.google.protobuf.FeatureSet.fromObject(object.overridableFeatures,long+1)}if(object.fixedFeatures!=null){if(typeof object.fixedFeatures!=="object")throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fixedFeatures: object expected");message.fixedFeatures=$root.google.protobuf.FeatureSet.fromObject(object.fixedFeatures,long+1)}return message};FeatureSetEditionDefault.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.edition=options.enums===String?"EDITION_UNKNOWN":0;object.overridableFeatures=null;object.fixedFeatures=null}if(message.edition!=null&&message.hasOwnProperty("edition"))object.edition=options.enums===String?$root.google.protobuf.Edition[message.edition]===undefined?message.edition:$root.google.protobuf.Edition[message.edition]:message.edition;if(message.overridableFeatures!=null&&message.hasOwnProperty("overridableFeatures"))object.overridableFeatures=$root.google.protobuf.FeatureSet.toObject(message.overridableFeatures,options);if(message.fixedFeatures!=null&&message.hasOwnProperty("fixedFeatures"))object.fixedFeatures=$root.google.protobuf.FeatureSet.toObject(message.fixedFeatures,options);return object};FeatureSetEditionDefault.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSetEditionDefault.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"};return FeatureSetEditionDefault}();return FeatureSetDefaults}();protobuf.SourceCodeInfo=function(){function SourceCodeInfo(properties){this.location=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}SourceCodeInfo.prototype.location=$util.emptyArray;SourceCodeInfo.create=function create(properties){return new SourceCodeInfo(properties)};SourceCodeInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.location!=null&&message.location.length)for(var i=0;i<message.location.length;++i)$root.google.protobuf.SourceCodeInfo.Location.encode(message.location[i],writer.uint32(10).fork()).ldelim();return writer};SourceCodeInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};SourceCodeInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.SourceCodeInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.location&&message.location.length))message.location=[];message.location.push($root.google.protobuf.SourceCodeInfo.Location.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};SourceCodeInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SourceCodeInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.location!=null&&message.hasOwnProperty("location")){if(!Array.isArray(message.location))return"location: array expected";for(var i=0;i<message.location.length;++i){var error=$root.google.protobuf.SourceCodeInfo.Location.verify(message.location[i],long+1);if(error)return"location."+error}}return null};SourceCodeInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.SourceCodeInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.SourceCodeInfo;if(object.location){if(!Array.isArray(object.location))throw TypeError(".google.protobuf.SourceCodeInfo.location: array expected");message.location=[];for(var i=0;i<object.location.length;++i){if(typeof object.location[i]!=="object")throw TypeError(".google.protobuf.SourceCodeInfo.location: object expected");message.location[i]=$root.google.protobuf.SourceCodeInfo.Location.fromObject(object.location[i],long+1)}}return message};SourceCodeInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.location=[];if(message.location&&message.location.length){object.location=[];for(var j=0;j<message.location.length;++j)object.location[j]=$root.google.protobuf.SourceCodeInfo.Location.toObject(message.location[j],options)}return object};SourceCodeInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SourceCodeInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.SourceCodeInfo"};SourceCodeInfo.Location=function(){function Location(properties){this.path=[];this.span=[];this.leadingDetachedComments=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Location.prototype.path=$util.emptyArray;Location.prototype.span=$util.emptyArray;Location.prototype.leadingComments="";Location.prototype.trailingComments="";Location.prototype.leadingDetachedComments=$util.emptyArray;Location.create=function create(properties){return new Location(properties)};Location.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.path!=null&&message.path.length){writer.uint32(10).fork();for(var i=0;i<message.path.length;++i)writer.int32(message.path[i]);writer.ldelim()}if(message.span!=null&&message.span.length){writer.uint32(18).fork();for(var i=0;i<message.span.length;++i)writer.int32(message.span[i]);writer.ldelim()}if(message.leadingComments!=null&&Object.hasOwnProperty.call(message,"leadingComments"))writer.uint32(26).string(message.leadingComments);if(message.trailingComments!=null&&Object.hasOwnProperty.call(message,"trailingComments"))writer.uint32(34).string(message.trailingComments);if(message.leadingDetachedComments!=null&&message.leadingDetachedComments.length)for(var i=0;i<message.leadingDetachedComments.length;++i)writer.uint32(50).string(message.leadingDetachedComments[i]);return writer};Location.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Location.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.SourceCodeInfo.Location;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.path&&message.path.length))message.path=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.path.push(reader.int32())}else message.path.push(reader.int32());break}case 2:{if(!(message.span&&message.span.length))message.span=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.span.push(reader.int32())}else message.span.push(reader.int32());break}case 3:{message.leadingComments=reader.string();break}case 4:{message.trailingComments=reader.string();break}case 6:{if(!(message.leadingDetachedComments&&message.leadingDetachedComments.length))message.leadingDetachedComments=[];message.leadingDetachedComments.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};Location.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Location.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.path!=null&&message.hasOwnProperty("path")){if(!Array.isArray(message.path))return"path: array expected";for(var i=0;i<message.path.length;++i)if(!$util.isInteger(message.path[i]))return"path: integer[] expected"}if(message.span!=null&&message.hasOwnProperty("span")){if(!Array.isArray(message.span))return"span: array expected";for(var i=0;i<message.span.length;++i)if(!$util.isInteger(message.span[i]))return"span: integer[] expected"}if(message.leadingComments!=null&&message.hasOwnProperty("leadingComments"))if(!$util.isString(message.leadingComments))return"leadingComments: string expected";if(message.trailingComments!=null&&message.hasOwnProperty("trailingComments"))if(!$util.isString(message.trailingComments))return"trailingComments: string expected";if(message.leadingDetachedComments!=null&&message.hasOwnProperty("leadingDetachedComments")){if(!Array.isArray(message.leadingDetachedComments))return"leadingDetachedComments: array expected";for(var i=0;i<message.leadingDetachedComments.length;++i)if(!$util.isString(message.leadingDetachedComments[i]))return"leadingDetachedComments: string[] expected"}return null};Location.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.SourceCodeInfo.Location)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.SourceCodeInfo.Location;if(object.path){if(!Array.isArray(object.path))throw TypeError(".google.protobuf.SourceCodeInfo.Location.path: array expected");message.path=[];for(var i=0;i<object.path.length;++i)message.path[i]=object.path[i]|0}if(object.span){if(!Array.isArray(object.span))throw TypeError(".google.protobuf.SourceCodeInfo.Location.span: array expected");message.span=[];for(var i=0;i<object.span.length;++i)message.span[i]=object.span[i]|0}if(object.leadingComments!=null)message.leadingComments=String(object.leadingComments);if(object.trailingComments!=null)message.trailingComments=String(object.trailingComments);if(object.leadingDetachedComments){if(!Array.isArray(object.leadingDetachedComments))throw TypeError(".google.protobuf.SourceCodeInfo.Location.leadingDetachedComments: array expected");message.leadingDetachedComments=[];for(var i=0;i<object.leadingDetachedComments.length;++i)message.leadingDetachedComments[i]=String(object.leadingDetachedComments[i])}return message};Location.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.path=[];object.span=[];object.leadingDetachedComments=[]}if(options.defaults){object.leadingComments="";object.trailingComments=""}if(message.path&&message.path.length){object.path=[];for(var j=0;j<message.path.length;++j)object.path[j]=message.path[j]}if(message.span&&message.span.length){object.span=[];for(var j=0;j<message.span.length;++j)object.span[j]=message.span[j]}if(message.leadingComments!=null&&message.hasOwnProperty("leadingComments"))object.leadingComments=message.leadingComments;if(message.trailingComments!=null&&message.hasOwnProperty("trailingComments"))object.trailingComments=message.trailingComments;if(message.leadingDetachedComments&&message.leadingDetachedComments.length){object.leadingDetachedComments=[];for(var j=0;j<message.leadingDetachedComments.length;++j)object.leadingDetachedComments[j]=message.leadingDetachedComments[j]}return object};Location.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Location.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.SourceCodeInfo.Location"};return Location}();return SourceCodeInfo}();protobuf.GeneratedCodeInfo=function(){function GeneratedCodeInfo(properties){this.annotation=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}GeneratedCodeInfo.prototype.annotation=$util.emptyArray;GeneratedCodeInfo.create=function create(properties){return new GeneratedCodeInfo(properties)};GeneratedCodeInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.annotation!=null&&message.annotation.length)for(var i=0;i<message.annotation.length;++i)$root.google.protobuf.GeneratedCodeInfo.Annotation.encode(message.annotation[i],writer.uint32(10).fork()).ldelim();return writer};GeneratedCodeInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};GeneratedCodeInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.GeneratedCodeInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.annotation&&message.annotation.length))message.annotation=[];message.annotation.push($root.google.protobuf.GeneratedCodeInfo.Annotation.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};GeneratedCodeInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GeneratedCodeInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.annotation!=null&&message.hasOwnProperty("annotation")){if(!Array.isArray(message.annotation))return"annotation: array expected";for(var i=0;i<message.annotation.length;++i){var error=$root.google.protobuf.GeneratedCodeInfo.Annotation.verify(message.annotation[i],long+1);if(error)return"annotation."+error}}return null};GeneratedCodeInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.GeneratedCodeInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.GeneratedCodeInfo;if(object.annotation){if(!Array.isArray(object.annotation))throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: array expected");message.annotation=[];for(var i=0;i<object.annotation.length;++i){if(typeof object.annotation[i]!=="object")throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: object expected");message.annotation[i]=$root.google.protobuf.GeneratedCodeInfo.Annotation.fromObject(object.annotation[i],long+1)}}return message};GeneratedCodeInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.annotation=[];if(message.annotation&&message.annotation.length){object.annotation=[];for(var j=0;j<message.annotation.length;++j)object.annotation[j]=$root.google.protobuf.GeneratedCodeInfo.Annotation.toObject(message.annotation[j],options)}return object};GeneratedCodeInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GeneratedCodeInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.GeneratedCodeInfo"};GeneratedCodeInfo.Annotation=function(){function Annotation(properties){this.path=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Annotation.prototype.path=$util.emptyArray;Annotation.prototype.sourceFile="";Annotation.prototype.begin=0;Annotation.prototype.end=0;Annotation.prototype.semantic=0;Annotation.create=function create(properties){return new Annotation(properties)};Annotation.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.path!=null&&message.path.length){writer.uint32(10).fork();for(var i=0;i<message.path.length;++i)writer.int32(message.path[i]);writer.ldelim()}if(message.sourceFile!=null&&Object.hasOwnProperty.call(message,"sourceFile"))writer.uint32(18).string(message.sourceFile);if(message.begin!=null&&Object.hasOwnProperty.call(message,"begin"))writer.uint32(24).int32(message.begin);if(message.end!=null&&Object.hasOwnProperty.call(message,"end"))writer.uint32(32).int32(message.end);if(message.semantic!=null&&Object.hasOwnProperty.call(message,"semantic"))writer.uint32(40).int32(message.semantic);return writer};Annotation.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Annotation.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.GeneratedCodeInfo.Annotation;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.path&&message.path.length))message.path=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.path.push(reader.int32())}else message.path.push(reader.int32());break}case 2:{message.sourceFile=reader.string();break}case 3:{message.begin=reader.int32();break}case 4:{message.end=reader.int32();break}case 5:{message.semantic=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Annotation.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Annotation.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.path!=null&&message.hasOwnProperty("path")){if(!Array.isArray(message.path))return"path: array expected";for(var i=0;i<message.path.length;++i)if(!$util.isInteger(message.path[i]))return"path: integer[] expected"}if(message.sourceFile!=null&&message.hasOwnProperty("sourceFile"))if(!$util.isString(message.sourceFile))return"sourceFile: string expected";if(message.begin!=null&&message.hasOwnProperty("begin"))if(!$util.isInteger(message.begin))return"begin: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";if(message.semantic!=null&&message.hasOwnProperty("semantic"))switch(message.semantic){default:return"semantic: enum value expected";case 0:case 1:case 2:break}return null};Annotation.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.GeneratedCodeInfo.Annotation)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.GeneratedCodeInfo.Annotation;if(object.path){if(!Array.isArray(object.path))throw TypeError(".google.protobuf.GeneratedCodeInfo.Annotation.path: array expected");message.path=[];for(var i=0;i<object.path.length;++i)message.path[i]=object.path[i]|0}if(object.sourceFile!=null)message.sourceFile=String(object.sourceFile);if(object.begin!=null)message.begin=object.begin|0;if(object.end!=null)message.end=object.end|0;switch(object.semantic){default:if(typeof object.semantic==="number"){message.semantic=object.semantic;break}break;case"NONE":case 0:message.semantic=0;break;case"SET":case 1:message.semantic=1;break;case"ALIAS":case 2:message.semantic=2;break}return message};Annotation.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.path=[];if(options.defaults){object.sourceFile="";object.begin=0;object.end=0;object.semantic=options.enums===String?"NONE":0}if(message.path&&message.path.length){object.path=[];for(var j=0;j<message.path.length;++j)object.path[j]=message.path[j]}if(message.sourceFile!=null&&message.hasOwnProperty("sourceFile"))object.sourceFile=message.sourceFile;if(message.begin!=null&&message.hasOwnProperty("begin"))object.begin=message.begin;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;if(message.semantic!=null&&message.hasOwnProperty("semantic"))object.semantic=options.enums===String?$root.google.protobuf.GeneratedCodeInfo.Annotation.Semantic[message.semantic]===undefined?message.semantic:$root.google.protobuf.GeneratedCodeInfo.Annotation.Semantic[message.semantic]:message.semantic;return object};Annotation.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Annotation.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.GeneratedCodeInfo.Annotation"};Annotation.Semantic=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="NONE"]=0;values[valuesById[1]="SET"]=1;values[valuesById[2]="ALIAS"]=2;return values}();return Annotation}();return GeneratedCodeInfo}();protobuf.SymbolVisibility=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="VISIBILITY_UNSET"]=0;values[valuesById[1]="VISIBILITY_LOCAL"]=1;values[valuesById[2]="VISIBILITY_EXPORT"]=2;return values}();protobuf.Duration=function(){function Duration(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Duration.prototype.seconds=$util.Long?$util.Long.fromBits(0,0,false):0;Duration.prototype.nanos=0;Duration.create=function create(properties){return new Duration(properties)};Duration.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.seconds!=null&&Object.hasOwnProperty.call(message,"seconds"))writer.uint32(8).int64(message.seconds);if(message.nanos!=null&&Object.hasOwnProperty.call(message,"nanos"))writer.uint32(16).int32(message.nanos);return writer};Duration.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Duration.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Duration;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.seconds=reader.int64();break}case 2:{message.nanos=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Duration.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Duration.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(!$util.isInteger(message.seconds)&&!(message.seconds&&$util.isInteger(message.seconds.low)&&$util.isInteger(message.seconds.high)))return"seconds: integer|Long expected";if(message.nanos!=null&&message.hasOwnProperty("nanos"))if(!$util.isInteger(message.nanos))return"nanos: integer expected";return null};Duration.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Duration)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Duration;if(object.seconds!=null)if($util.Long)(message.seconds=$util.Long.fromValue(object.seconds)).unsigned=false;else if(typeof object.seconds==="string")message.seconds=parseInt(object.seconds,10);else if(typeof object.seconds==="number")message.seconds=object.seconds;else if(typeof object.seconds==="object")message.seconds=new $util.LongBits(object.seconds.low>>>0,object.seconds.high>>>0).toNumber();if(object.nanos!=null)message.nanos=object.nanos|0;return message};Duration.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.seconds=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.seconds=options.longs===String?"0":0;object.nanos=0}if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(typeof message.seconds==="number")object.seconds=options.longs===String?String(message.seconds):message.seconds;else object.seconds=options.longs===String?$util.Long.prototype.toString.call(message.seconds):options.longs===Number?new $util.LongBits(message.seconds.low>>>0,message.seconds.high>>>0).toNumber():message.seconds;if(message.nanos!=null&&message.hasOwnProperty("nanos"))object.nanos=message.nanos;return object};Duration.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Duration.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Duration"};return Duration}();protobuf.Timestamp=function(){function Timestamp(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Timestamp.prototype.seconds=$util.Long?$util.Long.fromBits(0,0,false):0;Timestamp.prototype.nanos=0;Timestamp.create=function create(properties){return new Timestamp(properties)};Timestamp.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.seconds!=null&&Object.hasOwnProperty.call(message,"seconds"))writer.uint32(8).int64(message.seconds);if(message.nanos!=null&&Object.hasOwnProperty.call(message,"nanos"))writer.uint32(16).int32(message.nanos);return writer};Timestamp.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Timestamp.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Timestamp;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.seconds=reader.int64();break}case 2:{message.nanos=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Timestamp.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Timestamp.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(!$util.isInteger(message.seconds)&&!(message.seconds&&$util.isInteger(message.seconds.low)&&$util.isInteger(message.seconds.high)))return"seconds: integer|Long expected";if(message.nanos!=null&&message.hasOwnProperty("nanos"))if(!$util.isInteger(message.nanos))return"nanos: integer expected";return null};Timestamp.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Timestamp)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Timestamp;if(object.seconds!=null)if($util.Long)(message.seconds=$util.Long.fromValue(object.seconds)).unsigned=false;else if(typeof object.seconds==="string")message.seconds=parseInt(object.seconds,10);else if(typeof object.seconds==="number")message.seconds=object.seconds;else if(typeof object.seconds==="object")message.seconds=new $util.LongBits(object.seconds.low>>>0,object.seconds.high>>>0).toNumber();if(object.nanos!=null)message.nanos=object.nanos|0;return message};Timestamp.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.seconds=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.seconds=options.longs===String?"0":0;object.nanos=0}if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(typeof message.seconds==="number")object.seconds=options.longs===String?String(message.seconds):message.seconds;else object.seconds=options.longs===String?$util.Long.prototype.toString.call(message.seconds):options.longs===Number?new $util.LongBits(message.seconds.low>>>0,message.seconds.high>>>0).toNumber():message.seconds;if(message.nanos!=null&&message.hasOwnProperty("nanos"))object.nanos=message.nanos;return object};Timestamp.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Timestamp.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Timestamp"};return Timestamp}();return protobuf}();google.geo=function(){var geo={};geo.type=function(){var type={};type.Viewport=function(){function Viewport(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Viewport.prototype.low=null;Viewport.prototype.high=null;Viewport.create=function create(properties){return new Viewport(properties)};Viewport.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.low!=null&&Object.hasOwnProperty.call(message,"low"))$root.google.type.LatLng.encode(message.low,writer.uint32(10).fork()).ldelim();if(message.high!=null&&Object.hasOwnProperty.call(message,"high"))$root.google.type.LatLng.encode(message.high,writer.uint32(18).fork()).ldelim();return writer};Viewport.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Viewport.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.geo.type.Viewport;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.low=$root.google.type.LatLng.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.high=$root.google.type.LatLng.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Viewport.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Viewport.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.low!=null&&message.hasOwnProperty("low")){var error=$root.google.type.LatLng.verify(message.low,long+1);if(error)return"low."+error}if(message.high!=null&&message.hasOwnProperty("high")){var error=$root.google.type.LatLng.verify(message.high,long+1);if(error)return"high."+error}return null};Viewport.fromObject=function fromObject(object,long){if(object instanceof $root.google.geo.type.Viewport)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.geo.type.Viewport;if(object.low!=null){if(typeof object.low!=="object")throw TypeError(".google.geo.type.Viewport.low: object expected");message.low=$root.google.type.LatLng.fromObject(object.low,long+1)}if(object.high!=null){if(typeof object.high!=="object")throw TypeError(".google.geo.type.Viewport.high: object expected");message.high=$root.google.type.LatLng.fromObject(object.high,long+1)}return message};Viewport.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.low=null;object.high=null}if(message.low!=null&&message.hasOwnProperty("low"))object.low=$root.google.type.LatLng.toObject(message.low,options);if(message.high!=null&&message.hasOwnProperty("high"))object.high=$root.google.type.LatLng.toObject(message.high,options);return object};Viewport.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Viewport.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.geo.type.Viewport"};return Viewport}();return type}();return geo}();google.type=function(){var type={};type.LatLng=function(){function LatLng(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}LatLng.prototype.latitude=0;LatLng.prototype.longitude=0;LatLng.create=function create(properties){return new LatLng(properties)};LatLng.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.latitude!=null&&Object.hasOwnProperty.call(message,"latitude"))writer.uint32(9).double(message.latitude);if(message.longitude!=null&&Object.hasOwnProperty.call(message,"longitude"))writer.uint32(17).double(message.longitude);return writer};LatLng.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};LatLng.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.type.LatLng;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.latitude=reader.double();break}case 2:{message.longitude=reader.double();break}default:reader.skipType(tag&7,long);break}}return message};LatLng.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LatLng.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.latitude!=null&&message.hasOwnProperty("latitude"))if(typeof message.latitude!=="number")return"latitude: number expected";if(message.longitude!=null&&message.hasOwnProperty("longitude"))if(typeof message.longitude!=="number")return"longitude: number expected";return null};LatLng.fromObject=function fromObject(object,long){if(object instanceof $root.google.type.LatLng)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.type.LatLng;if(object.latitude!=null)message.latitude=Number(object.latitude);if(object.longitude!=null)message.longitude=Number(object.longitude);return message};LatLng.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.latitude=0;object.longitude=0}if(message.latitude!=null&&message.hasOwnProperty("latitude"))object.latitude=options.json&&!isFinite(message.latitude)?String(message.latitude):message.latitude;if(message.longitude!=null&&message.hasOwnProperty("longitude"))object.longitude=options.json&&!isFinite(message.longitude)?String(message.longitude):message.longitude;return object};LatLng.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LatLng.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.type.LatLng"};return LatLng}();type.LocalizedText=function(){function LocalizedText(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}LocalizedText.prototype.text="";LocalizedText.prototype.languageCode="";LocalizedText.create=function create(properties){return new LocalizedText(properties)};LocalizedText.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.text!=null&&Object.hasOwnProperty.call(message,"text"))writer.uint32(10).string(message.text);if(message.languageCode!=null&&Object.hasOwnProperty.call(message,"languageCode"))writer.uint32(18).string(message.languageCode);return writer};LocalizedText.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};LocalizedText.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.type.LocalizedText;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.text=reader.string();break}case 2:{message.languageCode=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};LocalizedText.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LocalizedText.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.text!=null&&message.hasOwnProperty("text"))if(!$util.isString(message.text))return"text: string expected";if(message.languageCode!=null&&message.hasOwnProperty("languageCode"))if(!$util.isString(message.languageCode))return"languageCode: string expected";return null};LocalizedText.fromObject=function fromObject(object,long){if(object instanceof $root.google.type.LocalizedText)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.type.LocalizedText;if(object.text!=null)message.text=String(object.text);if(object.languageCode!=null)message.languageCode=String(object.languageCode);return message};LocalizedText.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.text="";object.languageCode=""}if(message.text!=null&&message.hasOwnProperty("text"))object.text=message.text;if(message.languageCode!=null&&message.hasOwnProperty("languageCode"))object.languageCode=message.languageCode;return object};LocalizedText.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LocalizedText.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.type.LocalizedText"};return LocalizedText}();type.Money=function(){function Money(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Money.prototype.currencyCode="";Money.prototype.units=$util.Long?$util.Long.fromBits(0,0,false):0;Money.prototype.nanos=0;Money.create=function create(properties){return new Money(properties)};Money.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.currencyCode!=null&&Object.hasOwnProperty.call(message,"currencyCode"))writer.uint32(10).string(message.currencyCode);if(message.units!=null&&Object.hasOwnProperty.call(message,"units"))writer.uint32(16).int64(message.units);if(message.nanos!=null&&Object.hasOwnProperty.call(message,"nanos"))writer.uint32(24).int32(message.nanos);return writer};Money.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Money.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.type.Money;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.currencyCode=reader.string();break}case 2:{message.units=reader.int64();break}case 3:{message.nanos=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Money.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Money.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.currencyCode!=null&&message.hasOwnProperty("currencyCode"))if(!$util.isString(message.currencyCode))return"currencyCode: string expected";if(message.units!=null&&message.hasOwnProperty("units"))if(!$util.isInteger(message.units)&&!(message.units&&$util.isInteger(message.units.low)&&$util.isInteger(message.units.high)))return"units: integer|Long expected";if(message.nanos!=null&&message.hasOwnProperty("nanos"))if(!$util.isInteger(message.nanos))return"nanos: integer expected";return null};Money.fromObject=function fromObject(object,long){if(object instanceof $root.google.type.Money)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.type.Money;if(object.currencyCode!=null)message.currencyCode=String(object.currencyCode);if(object.units!=null)if($util.Long)(message.units=$util.Long.fromValue(object.units)).unsigned=false;else if(typeof object.units==="string")message.units=parseInt(object.units,10);else if(typeof object.units==="number")message.units=object.units;else if(typeof object.units==="object")message.units=new $util.LongBits(object.units.low>>>0,object.units.high>>>0).toNumber();if(object.nanos!=null)message.nanos=object.nanos|0;return message};Money.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.currencyCode="";if($util.Long){var long=new $util.Long(0,0,false);object.units=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.units=options.longs===String?"0":0;object.nanos=0}if(message.currencyCode!=null&&message.hasOwnProperty("currencyCode"))object.currencyCode=message.currencyCode;if(message.units!=null&&message.hasOwnProperty("units"))if(typeof message.units==="number")object.units=options.longs===String?String(message.units):message.units;else object.units=options.longs===String?$util.Long.prototype.toString.call(message.units):options.longs===Number?new $util.LongBits(message.units.low>>>0,message.units.high>>>0).toNumber():message.units;if(message.nanos!=null&&message.hasOwnProperty("nanos"))object.nanos=message.nanos;return object};Money.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Money.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.type.Money"};return Money}();return type}();google.maps=function(){var maps={};maps.routing=function(){var routing={};routing.v2=function(){var v2={};v2.FallbackInfo=function(){function FallbackInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FallbackInfo.prototype.routingMode=0;FallbackInfo.prototype.reason=0;FallbackInfo.create=function create(properties){return new FallbackInfo(properties)};FallbackInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.routingMode!=null&&Object.hasOwnProperty.call(message,"routingMode"))writer.uint32(8).int32(message.routingMode);if(message.reason!=null&&Object.hasOwnProperty.call(message,"reason"))writer.uint32(16).int32(message.reason);return writer};FallbackInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FallbackInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.FallbackInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.routingMode=reader.int32();break}case 2:{message.reason=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FallbackInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FallbackInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.routingMode!=null&&message.hasOwnProperty("routingMode"))switch(message.routingMode){default:return"routingMode: enum value expected";case 0:case 1:case 2:break}if(message.reason!=null&&message.hasOwnProperty("reason"))switch(message.reason){default:return"reason: enum value expected";case 0:case 1:case 2:break}return null};FallbackInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.FallbackInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.FallbackInfo;switch(object.routingMode){default:if(typeof object.routingMode==="number"){message.routingMode=object.routingMode;break}break;case"FALLBACK_ROUTING_MODE_UNSPECIFIED":case 0:message.routingMode=0;break;case"FALLBACK_TRAFFIC_UNAWARE":case 1:message.routingMode=1;break;case"FALLBACK_TRAFFIC_AWARE":case 2:message.routingMode=2;break}switch(object.reason){default:if(typeof object.reason==="number"){message.reason=object.reason;break}break;case"FALLBACK_REASON_UNSPECIFIED":case 0:message.reason=0;break;case"SERVER_ERROR":case 1:message.reason=1;break;case"LATENCY_EXCEEDED":case 2:message.reason=2;break}return message};FallbackInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.routingMode=options.enums===String?"FALLBACK_ROUTING_MODE_UNSPECIFIED":0;object.reason=options.enums===String?"FALLBACK_REASON_UNSPECIFIED":0}if(message.routingMode!=null&&message.hasOwnProperty("routingMode"))object.routingMode=options.enums===String?$root.google.maps.routing.v2.FallbackRoutingMode[message.routingMode]===undefined?message.routingMode:$root.google.maps.routing.v2.FallbackRoutingMode[message.routingMode]:message.routingMode;if(message.reason!=null&&message.hasOwnProperty("reason"))object.reason=options.enums===String?$root.google.maps.routing.v2.FallbackReason[message.reason]===undefined?message.reason:$root.google.maps.routing.v2.FallbackReason[message.reason]:message.reason;return object};FallbackInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FallbackInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.FallbackInfo"};return FallbackInfo}();v2.FallbackReason=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="FALLBACK_REASON_UNSPECIFIED"]=0;values[valuesById[1]="SERVER_ERROR"]=1;values[valuesById[2]="LATENCY_EXCEEDED"]=2;return values}();v2.FallbackRoutingMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="FALLBACK_ROUTING_MODE_UNSPECIFIED"]=0;values[valuesById[1]="FALLBACK_TRAFFIC_UNAWARE"]=1;values[valuesById[2]="FALLBACK_TRAFFIC_AWARE"]=2;return values}();v2.GeocodingResults=function(){function GeocodingResults(properties){this.intermediates=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}GeocodingResults.prototype.origin=null;GeocodingResults.prototype.destination=null;GeocodingResults.prototype.intermediates=$util.emptyArray;GeocodingResults.create=function create(properties){return new GeocodingResults(properties)};GeocodingResults.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.origin!=null&&Object.hasOwnProperty.call(message,"origin"))$root.google.maps.routing.v2.GeocodedWaypoint.encode(message.origin,writer.uint32(10).fork()).ldelim();if(message.destination!=null&&Object.hasOwnProperty.call(message,"destination"))$root.google.maps.routing.v2.GeocodedWaypoint.encode(message.destination,writer.uint32(18).fork()).ldelim();if(message.intermediates!=null&&message.intermediates.length)for(var i=0;i<message.intermediates.length;++i)$root.google.maps.routing.v2.GeocodedWaypoint.encode(message.intermediates[i],writer.uint32(26).fork()).ldelim();return writer};GeocodingResults.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};GeocodingResults.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.GeocodingResults;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.origin=$root.google.maps.routing.v2.GeocodedWaypoint.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.destination=$root.google.maps.routing.v2.GeocodedWaypoint.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{if(!(message.intermediates&&message.intermediates.length))message.intermediates=[];message.intermediates.push($root.google.maps.routing.v2.GeocodedWaypoint.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};GeocodingResults.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GeocodingResults.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.origin!=null&&message.hasOwnProperty("origin")){var error=$root.google.maps.routing.v2.GeocodedWaypoint.verify(message.origin,long+1);if(error)return"origin."+error}if(message.destination!=null&&message.hasOwnProperty("destination")){var error=$root.google.maps.routing.v2.GeocodedWaypoint.verify(message.destination,long+1);if(error)return"destination."+error}if(message.intermediates!=null&&message.hasOwnProperty("intermediates")){if(!Array.isArray(message.intermediates))return"intermediates: array expected";for(var i=0;i<message.intermediates.length;++i){var error=$root.google.maps.routing.v2.GeocodedWaypoint.verify(message.intermediates[i],long+1);if(error)return"intermediates."+error}}return null};GeocodingResults.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.GeocodingResults)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.GeocodingResults;if(object.origin!=null){if(typeof object.origin!=="object")throw TypeError(".google.maps.routing.v2.GeocodingResults.origin: object expected");message.origin=$root.google.maps.routing.v2.GeocodedWaypoint.fromObject(object.origin,long+1)}if(object.destination!=null){if(typeof object.destination!=="object")throw TypeError(".google.maps.routing.v2.GeocodingResults.destination: object expected");message.destination=$root.google.maps.routing.v2.GeocodedWaypoint.fromObject(object.destination,long+1)}if(object.intermediates){if(!Array.isArray(object.intermediates))throw TypeError(".google.maps.routing.v2.GeocodingResults.intermediates: array expected");message.intermediates=[];for(var i=0;i<object.intermediates.length;++i){if(typeof object.intermediates[i]!=="object")throw TypeError(".google.maps.routing.v2.GeocodingResults.intermediates: object expected");message.intermediates[i]=$root.google.maps.routing.v2.GeocodedWaypoint.fromObject(object.intermediates[i],long+1)}}return message};GeocodingResults.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.intermediates=[];if(options.defaults){object.origin=null;object.destination=null}if(message.origin!=null&&message.hasOwnProperty("origin"))object.origin=$root.google.maps.routing.v2.GeocodedWaypoint.toObject(message.origin,options);if(message.destination!=null&&message.hasOwnProperty("destination"))object.destination=$root.google.maps.routing.v2.GeocodedWaypoint.toObject(message.destination,options);if(message.intermediates&&message.intermediates.length){object.intermediates=[];for(var j=0;j<message.intermediates.length;++j)object.intermediates[j]=$root.google.maps.routing.v2.GeocodedWaypoint.toObject(message.intermediates[j],options)}return object};GeocodingResults.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GeocodingResults.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.GeocodingResults"};return GeocodingResults}();v2.GeocodedWaypoint=function(){function GeocodedWaypoint(properties){this.type=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}GeocodedWaypoint.prototype.geocoderStatus=null;GeocodedWaypoint.prototype.intermediateWaypointRequestIndex=null;GeocodedWaypoint.prototype.type=$util.emptyArray;GeocodedWaypoint.prototype.partialMatch=false;GeocodedWaypoint.prototype.placeId="";var $oneOfFields;Object.defineProperty(GeocodedWaypoint.prototype,"_intermediateWaypointRequestIndex",{get:$util.oneOfGetter($oneOfFields=["intermediateWaypointRequestIndex"]),set:$util.oneOfSetter($oneOfFields)});GeocodedWaypoint.create=function create(properties){return new GeocodedWaypoint(properties)};GeocodedWaypoint.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.geocoderStatus!=null&&Object.hasOwnProperty.call(message,"geocoderStatus"))$root.google.rpc.Status.encode(message.geocoderStatus,writer.uint32(10).fork()).ldelim();if(message.intermediateWaypointRequestIndex!=null&&Object.hasOwnProperty.call(message,"intermediateWaypointRequestIndex"))writer.uint32(16).int32(message.intermediateWaypointRequestIndex);if(message.type!=null&&message.type.length)for(var i=0;i<message.type.length;++i)writer.uint32(26).string(message.type[i]);if(message.partialMatch!=null&&Object.hasOwnProperty.call(message,"partialMatch"))writer.uint32(32).bool(message.partialMatch);if(message.placeId!=null&&Object.hasOwnProperty.call(message,"placeId"))writer.uint32(42).string(message.placeId);return writer};GeocodedWaypoint.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};GeocodedWaypoint.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.GeocodedWaypoint;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.geocoderStatus=$root.google.rpc.Status.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.intermediateWaypointRequestIndex=reader.int32();break}case 3:{if(!(message.type&&message.type.length))message.type=[];message.type.push(reader.string());break}case 4:{message.partialMatch=reader.bool();break}case 5:{message.placeId=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GeocodedWaypoint.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GeocodedWaypoint.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.geocoderStatus!=null&&message.hasOwnProperty("geocoderStatus")){var error=$root.google.rpc.Status.verify(message.geocoderStatus,long+1);if(error)return"geocoderStatus."+error}if(message.intermediateWaypointRequestIndex!=null&&message.hasOwnProperty("intermediateWaypointRequestIndex")){properties._intermediateWaypointRequestIndex=1;if(!$util.isInteger(message.intermediateWaypointRequestIndex))return"intermediateWaypointRequestIndex: integer expected"}if(message.type!=null&&message.hasOwnProperty("type")){if(!Array.isArray(message.type))return"type: array expected";for(var i=0;i<message.type.length;++i)if(!$util.isString(message.type[i]))return"type: string[] expected"}if(message.partialMatch!=null&&message.hasOwnProperty("partialMatch"))if(typeof message.partialMatch!=="boolean")return"partialMatch: boolean expected";if(message.placeId!=null&&message.hasOwnProperty("placeId"))if(!$util.isString(message.placeId))return"placeId: string expected";return null};GeocodedWaypoint.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.GeocodedWaypoint)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.GeocodedWaypoint;if(object.geocoderStatus!=null){if(typeof object.geocoderStatus!=="object")throw TypeError(".google.maps.routing.v2.GeocodedWaypoint.geocoderStatus: object expected");message.geocoderStatus=$root.google.rpc.Status.fromObject(object.geocoderStatus,long+1)}if(object.intermediateWaypointRequestIndex!=null)message.intermediateWaypointRequestIndex=object.intermediateWaypointRequestIndex|0;if(object.type){if(!Array.isArray(object.type))throw TypeError(".google.maps.routing.v2.GeocodedWaypoint.type: array expected");message.type=[];for(var i=0;i<object.type.length;++i)message.type[i]=String(object.type[i])}if(object.partialMatch!=null)message.partialMatch=Boolean(object.partialMatch);if(object.placeId!=null)message.placeId=String(object.placeId);return message};GeocodedWaypoint.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.type=[];if(options.defaults){object.geocoderStatus=null;object.partialMatch=false;object.placeId=""}if(message.geocoderStatus!=null&&message.hasOwnProperty("geocoderStatus"))object.geocoderStatus=$root.google.rpc.Status.toObject(message.geocoderStatus,options);if(message.intermediateWaypointRequestIndex!=null&&message.hasOwnProperty("intermediateWaypointRequestIndex")){object.intermediateWaypointRequestIndex=message.intermediateWaypointRequestIndex;if(options.oneofs)object._intermediateWaypointRequestIndex="intermediateWaypointRequestIndex"}if(message.type&&message.type.length){object.type=[];for(var j=0;j<message.type.length;++j)object.type[j]=message.type[j]}if(message.partialMatch!=null&&message.hasOwnProperty("partialMatch"))object.partialMatch=message.partialMatch;if(message.placeId!=null&&message.hasOwnProperty("placeId"))object.placeId=message.placeId;return object};GeocodedWaypoint.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GeocodedWaypoint.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.GeocodedWaypoint"};return GeocodedWaypoint}();v2.LocalizedTime=function(){function LocalizedTime(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}LocalizedTime.prototype.time=null;LocalizedTime.prototype.timeZone="";LocalizedTime.create=function create(properties){return new LocalizedTime(properties)};LocalizedTime.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.time!=null&&Object.hasOwnProperty.call(message,"time"))$root.google.type.LocalizedText.encode(message.time,writer.uint32(10).fork()).ldelim();if(message.timeZone!=null&&Object.hasOwnProperty.call(message,"timeZone"))writer.uint32(18).string(message.timeZone);return writer};LocalizedTime.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};LocalizedTime.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.LocalizedTime;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.time=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.timeZone=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};LocalizedTime.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LocalizedTime.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.time!=null&&message.hasOwnProperty("time")){var error=$root.google.type.LocalizedText.verify(message.time,long+1);if(error)return"time."+error}if(message.timeZone!=null&&message.hasOwnProperty("timeZone"))if(!$util.isString(message.timeZone))return"timeZone: string expected";return null};LocalizedTime.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.LocalizedTime)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.LocalizedTime;if(object.time!=null){if(typeof object.time!=="object")throw TypeError(".google.maps.routing.v2.LocalizedTime.time: object expected");message.time=$root.google.type.LocalizedText.fromObject(object.time,long+1)}if(object.timeZone!=null)message.timeZone=String(object.timeZone);return message};LocalizedTime.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.time=null;object.timeZone=""}if(message.time!=null&&message.hasOwnProperty("time"))object.time=$root.google.type.LocalizedText.toObject(message.time,options);if(message.timeZone!=null&&message.hasOwnProperty("timeZone"))object.timeZone=message.timeZone;return object};LocalizedTime.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LocalizedTime.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.LocalizedTime"};return LocalizedTime}();v2.Location=function(){function Location(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Location.prototype.latLng=null;Location.prototype.heading=null;Location.create=function create(properties){return new Location(properties)};Location.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.latLng!=null&&Object.hasOwnProperty.call(message,"latLng"))$root.google.type.LatLng.encode(message.latLng,writer.uint32(10).fork()).ldelim();if(message.heading!=null&&Object.hasOwnProperty.call(message,"heading"))$root.google.protobuf.Int32Value.encode(message.heading,writer.uint32(18).fork()).ldelim();return writer};Location.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Location.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.Location;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.latLng=$root.google.type.LatLng.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.heading=$root.google.protobuf.Int32Value.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Location.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Location.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.latLng!=null&&message.hasOwnProperty("latLng")){var error=$root.google.type.LatLng.verify(message.latLng,long+1);if(error)return"latLng."+error}if(message.heading!=null&&message.hasOwnProperty("heading")){var error=$root.google.protobuf.Int32Value.verify(message.heading,long+1);if(error)return"heading."+error}return null};Location.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.Location)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.Location;if(object.latLng!=null){if(typeof object.latLng!=="object")throw TypeError(".google.maps.routing.v2.Location.latLng: object expected");message.latLng=$root.google.type.LatLng.fromObject(object.latLng,long+1)}if(object.heading!=null){if(typeof object.heading!=="object")throw TypeError(".google.maps.routing.v2.Location.heading: object expected");message.heading=$root.google.protobuf.Int32Value.fromObject(object.heading,long+1)}return message};Location.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.latLng=null;object.heading=null}if(message.latLng!=null&&message.hasOwnProperty("latLng"))object.latLng=$root.google.type.LatLng.toObject(message.latLng,options);if(message.heading!=null&&message.hasOwnProperty("heading"))object.heading=$root.google.protobuf.Int32Value.toObject(message.heading,options);return object};Location.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Location.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.Location"};return Location}();v2.Maneuver=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="MANEUVER_UNSPECIFIED"]=0;values[valuesById[1]="TURN_SLIGHT_LEFT"]=1;values[valuesById[2]="TURN_SHARP_LEFT"]=2;values[valuesById[3]="UTURN_LEFT"]=3;values[valuesById[4]="TURN_LEFT"]=4;values[valuesById[5]="TURN_SLIGHT_RIGHT"]=5;values[valuesById[6]="TURN_SHARP_RIGHT"]=6;values[valuesById[7]="UTURN_RIGHT"]=7;values[valuesById[8]="TURN_RIGHT"]=8;values[valuesById[9]="STRAIGHT"]=9;values[valuesById[10]="RAMP_LEFT"]=10;values[valuesById[11]="RAMP_RIGHT"]=11;values[valuesById[12]="MERGE"]=12;values[valuesById[13]="FORK_LEFT"]=13;values[valuesById[14]="FORK_RIGHT"]=14;values[valuesById[15]="FERRY"]=15;values[valuesById[16]="FERRY_TRAIN"]=16;values[valuesById[17]="ROUNDABOUT_LEFT"]=17;values[valuesById[18]="ROUNDABOUT_RIGHT"]=18;values[valuesById[19]="DEPART"]=19;values[valuesById[20]="NAME_CHANGE"]=20;return values}();v2.NavigationInstruction=function(){function NavigationInstruction(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}NavigationInstruction.prototype.maneuver=0;NavigationInstruction.prototype.instructions="";NavigationInstruction.create=function create(properties){return new NavigationInstruction(properties)};NavigationInstruction.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.maneuver!=null&&Object.hasOwnProperty.call(message,"maneuver"))writer.uint32(8).int32(message.maneuver);if(message.instructions!=null&&Object.hasOwnProperty.call(message,"instructions"))writer.uint32(18).string(message.instructions);return writer};NavigationInstruction.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};NavigationInstruction.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.NavigationInstruction;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.maneuver=reader.int32();break}case 2:{message.instructions=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};NavigationInstruction.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};NavigationInstruction.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.maneuver!=null&&message.hasOwnProperty("maneuver"))switch(message.maneuver){default:return"maneuver: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:break}if(message.instructions!=null&&message.hasOwnProperty("instructions"))if(!$util.isString(message.instructions))return"instructions: string expected";return null};NavigationInstruction.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.NavigationInstruction)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.NavigationInstruction;switch(object.maneuver){default:if(typeof object.maneuver==="number"){message.maneuver=object.maneuver;break}break;case"MANEUVER_UNSPECIFIED":case 0:message.maneuver=0;break;case"TURN_SLIGHT_LEFT":case 1:message.maneuver=1;break;case"TURN_SHARP_LEFT":case 2:message.maneuver=2;break;case"UTURN_LEFT":case 3:message.maneuver=3;break;case"TURN_LEFT":case 4:message.maneuver=4;break;case"TURN_SLIGHT_RIGHT":case 5:message.maneuver=5;break;case"TURN_SHARP_RIGHT":case 6:message.maneuver=6;break;case"UTURN_RIGHT":case 7:message.maneuver=7;break;case"TURN_RIGHT":case 8:message.maneuver=8;break;case"STRAIGHT":case 9:message.maneuver=9;break;case"RAMP_LEFT":case 10:message.maneuver=10;break;case"RAMP_RIGHT":case 11:message.maneuver=11;break;case"MERGE":case 12:message.maneuver=12;break;case"FORK_LEFT":case 13:message.maneuver=13;break;case"FORK_RIGHT":case 14:message.maneuver=14;break;case"FERRY":case 15:message.maneuver=15;break;case"FERRY_TRAIN":case 16:message.maneuver=16;break;case"ROUNDABOUT_LEFT":case 17:message.maneuver=17;break;case"ROUNDABOUT_RIGHT":case 18:message.maneuver=18;break;case"DEPART":case 19:message.maneuver=19;break;case"NAME_CHANGE":case 20:message.maneuver=20;break}if(object.instructions!=null)message.instructions=String(object.instructions);return message};NavigationInstruction.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.maneuver=options.enums===String?"MANEUVER_UNSPECIFIED":0;object.instructions=""}if(message.maneuver!=null&&message.hasOwnProperty("maneuver"))object.maneuver=options.enums===String?$root.google.maps.routing.v2.Maneuver[message.maneuver]===undefined?message.maneuver:$root.google.maps.routing.v2.Maneuver[message.maneuver]:message.maneuver;if(message.instructions!=null&&message.hasOwnProperty("instructions"))object.instructions=message.instructions;return object};NavigationInstruction.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};NavigationInstruction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.NavigationInstruction"};return NavigationInstruction}();v2.Polyline=function(){function Polyline(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Polyline.prototype.encodedPolyline=null;Polyline.prototype.geoJsonLinestring=null;var $oneOfFields;Object.defineProperty(Polyline.prototype,"polylineType",{get:$util.oneOfGetter($oneOfFields=["encodedPolyline","geoJsonLinestring"]),set:$util.oneOfSetter($oneOfFields)});Polyline.create=function create(properties){return new Polyline(properties)};Polyline.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.encodedPolyline!=null&&Object.hasOwnProperty.call(message,"encodedPolyline"))writer.uint32(10).string(message.encodedPolyline);if(message.geoJsonLinestring!=null&&Object.hasOwnProperty.call(message,"geoJsonLinestring"))$root.google.protobuf.Struct.encode(message.geoJsonLinestring,writer.uint32(18).fork()).ldelim();return writer};Polyline.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Polyline.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.Polyline;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.encodedPolyline=reader.string();break}case 2:{message.geoJsonLinestring=$root.google.protobuf.Struct.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Polyline.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Polyline.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.encodedPolyline!=null&&message.hasOwnProperty("encodedPolyline")){properties.polylineType=1;if(!$util.isString(message.encodedPolyline))return"encodedPolyline: string expected"}if(message.geoJsonLinestring!=null&&message.hasOwnProperty("geoJsonLinestring")){if(properties.polylineType===1)return"polylineType: multiple values";properties.polylineType=1;{var error=$root.google.protobuf.Struct.verify(message.geoJsonLinestring,long+1);if(error)return"geoJsonLinestring."+error}}return null};Polyline.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.Polyline)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.Polyline;if(object.encodedPolyline!=null)message.encodedPolyline=String(object.encodedPolyline);if(object.geoJsonLinestring!=null){if(typeof object.geoJsonLinestring!=="object")throw TypeError(".google.maps.routing.v2.Polyline.geoJsonLinestring: object expected");message.geoJsonLinestring=$root.google.protobuf.Struct.fromObject(object.geoJsonLinestring,long+1)}return message};Polyline.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.encodedPolyline!=null&&message.hasOwnProperty("encodedPolyline")){object.encodedPolyline=message.encodedPolyline;if(options.oneofs)object.polylineType="encodedPolyline"}if(message.geoJsonLinestring!=null&&message.hasOwnProperty("geoJsonLinestring")){object.geoJsonLinestring=$root.google.protobuf.Struct.toObject(message.geoJsonLinestring,options);if(options.oneofs)object.polylineType="geoJsonLinestring"}return object};Polyline.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Polyline.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.Polyline"};return Polyline}();v2.PolylineQuality=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="POLYLINE_QUALITY_UNSPECIFIED"]=0;values[valuesById[1]="HIGH_QUALITY"]=1;values[valuesById[2]="OVERVIEW"]=2;return values}();v2.PolylineEncoding=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="POLYLINE_ENCODING_UNSPECIFIED"]=0;values[valuesById[1]="ENCODED_POLYLINE"]=1;values[valuesById[2]="GEO_JSON_LINESTRING"]=2;return values}();v2.PolylineDetails=function(){function PolylineDetails(properties){this.tunnelInfo=[];this.flyoverInfo=[];this.narrowRoadInfo=[];this.bridgeInfo=[];this.skywayInfo=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}PolylineDetails.prototype.tunnelInfo=$util.emptyArray;PolylineDetails.prototype.flyoverInfo=$util.emptyArray;PolylineDetails.prototype.narrowRoadInfo=$util.emptyArray;PolylineDetails.prototype.bridgeInfo=$util.emptyArray;PolylineDetails.prototype.skywayInfo=$util.emptyArray;PolylineDetails.create=function create(properties){return new PolylineDetails(properties)};PolylineDetails.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.tunnelInfo!=null&&message.tunnelInfo.length)for(var i=0;i<message.tunnelInfo.length;++i)$root.google.maps.routing.v2.PolylineDetails.TunnelInfo.encode(message.tunnelInfo[i],writer.uint32(66).fork()).ldelim();if(message.flyoverInfo!=null&&message.flyoverInfo.length)for(var i=0;i<message.flyoverInfo.length;++i)$root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.encode(message.flyoverInfo[i],writer.uint32(98).fork()).ldelim();if(message.narrowRoadInfo!=null&&message.narrowRoadInfo.length)for(var i=0;i<message.narrowRoadInfo.length;++i)$root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.encode(message.narrowRoadInfo[i],writer.uint32(106).fork()).ldelim();if(message.bridgeInfo!=null&&message.bridgeInfo.length)for(var i=0;i<message.bridgeInfo.length;++i)$root.google.maps.routing.v2.PolylineDetails.BridgeInfo.encode(message.bridgeInfo[i],writer.uint32(114).fork()).ldelim();if(message.skywayInfo!=null&&message.skywayInfo.length)for(var i=0;i<message.skywayInfo.length;++i)$root.google.maps.routing.v2.PolylineDetails.SkywayInfo.encode(message.skywayInfo[i],writer.uint32(122).fork()).ldelim();return writer};PolylineDetails.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};PolylineDetails.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.PolylineDetails;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 8:{if(!(message.tunnelInfo&&message.tunnelInfo.length))message.tunnelInfo=[];message.tunnelInfo.push($root.google.maps.routing.v2.PolylineDetails.TunnelInfo.decode(reader,reader.uint32(),undefined,long+1));break}case 12:{if(!(message.flyoverInfo&&message.flyoverInfo.length))message.flyoverInfo=[];message.flyoverInfo.push($root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.decode(reader,reader.uint32(),undefined,long+1));break}case 13:{if(!(message.narrowRoadInfo&&message.narrowRoadInfo.length))message.narrowRoadInfo=[];message.narrowRoadInfo.push($root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.decode(reader,reader.uint32(),undefined,long+1));break}case 14:{if(!(message.bridgeInfo&&message.bridgeInfo.length))message.bridgeInfo=[];message.bridgeInfo.push($root.google.maps.routing.v2.PolylineDetails.BridgeInfo.decode(reader,reader.uint32(),undefined,long+1));break}case 15:{if(!(message.skywayInfo&&message.skywayInfo.length))message.skywayInfo=[];message.skywayInfo.push($root.google.maps.routing.v2.PolylineDetails.SkywayInfo.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};PolylineDetails.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PolylineDetails.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.tunnelInfo!=null&&message.hasOwnProperty("tunnelInfo")){if(!Array.isArray(message.tunnelInfo))return"tunnelInfo: array expected";for(var i=0;i<message.tunnelInfo.length;++i){var error=$root.google.maps.routing.v2.PolylineDetails.TunnelInfo.verify(message.tunnelInfo[i],long+1);if(error)return"tunnelInfo."+error}}if(message.flyoverInfo!=null&&message.hasOwnProperty("flyoverInfo")){if(!Array.isArray(message.flyoverInfo))return"flyoverInfo: array expected";for(var i=0;i<message.flyoverInfo.length;++i){var error=$root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.verify(message.flyoverInfo[i],long+1);if(error)return"flyoverInfo."+error}}if(message.narrowRoadInfo!=null&&message.hasOwnProperty("narrowRoadInfo")){if(!Array.isArray(message.narrowRoadInfo))return"narrowRoadInfo: array expected";for(var i=0;i<message.narrowRoadInfo.length;++i){var error=$root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.verify(message.narrowRoadInfo[i],long+1);if(error)return"narrowRoadInfo."+error}}if(message.bridgeInfo!=null&&message.hasOwnProperty("bridgeInfo")){if(!Array.isArray(message.bridgeInfo))return"bridgeInfo: array expected";for(var i=0;i<message.bridgeInfo.length;++i){var error=$root.google.maps.routing.v2.PolylineDetails.BridgeInfo.verify(message.bridgeInfo[i],long+1);if(error)return"bridgeInfo."+error}}if(message.skywayInfo!=null&&message.hasOwnProperty("skywayInfo")){if(!Array.isArray(message.skywayInfo))return"skywayInfo: array expected";for(var i=0;i<message.skywayInfo.length;++i){var error=$root.google.maps.routing.v2.PolylineDetails.SkywayInfo.verify(message.skywayInfo[i],long+1);if(error)return"skywayInfo."+error}}return null};PolylineDetails.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.PolylineDetails)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.PolylineDetails;if(object.tunnelInfo){if(!Array.isArray(object.tunnelInfo))throw TypeError(".google.maps.routing.v2.PolylineDetails.tunnelInfo: array expected");message.tunnelInfo=[];for(var i=0;i<object.tunnelInfo.length;++i){if(typeof object.tunnelInfo[i]!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.tunnelInfo: object expected");message.tunnelInfo[i]=$root.google.maps.routing.v2.PolylineDetails.TunnelInfo.fromObject(object.tunnelInfo[i],long+1)}}if(object.flyoverInfo){if(!Array.isArray(object.flyoverInfo))throw TypeError(".google.maps.routing.v2.PolylineDetails.flyoverInfo: array expected");message.flyoverInfo=[];for(var i=0;i<object.flyoverInfo.length;++i){if(typeof object.flyoverInfo[i]!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.flyoverInfo: object expected");message.flyoverInfo[i]=$root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.fromObject(object.flyoverInfo[i],long+1)}}if(object.narrowRoadInfo){if(!Array.isArray(object.narrowRoadInfo))throw TypeError(".google.maps.routing.v2.PolylineDetails.narrowRoadInfo: array expected");message.narrowRoadInfo=[];for(var i=0;i<object.narrowRoadInfo.length;++i){if(typeof object.narrowRoadInfo[i]!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.narrowRoadInfo: object expected");message.narrowRoadInfo[i]=$root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.fromObject(object.narrowRoadInfo[i],long+1)}}if(object.bridgeInfo){if(!Array.isArray(object.bridgeInfo))throw TypeError(".google.maps.routing.v2.PolylineDetails.bridgeInfo: array expected");message.bridgeInfo=[];for(var i=0;i<object.bridgeInfo.length;++i){if(typeof object.bridgeInfo[i]!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.bridgeInfo: object expected");message.bridgeInfo[i]=$root.google.maps.routing.v2.PolylineDetails.BridgeInfo.fromObject(object.bridgeInfo[i],long+1)}}if(object.skywayInfo){if(!Array.isArray(object.skywayInfo))throw TypeError(".google.maps.routing.v2.PolylineDetails.skywayInfo: array expected");message.skywayInfo=[];for(var i=0;i<object.skywayInfo.length;++i){if(typeof object.skywayInfo[i]!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.skywayInfo: object expected");message.skywayInfo[i]=$root.google.maps.routing.v2.PolylineDetails.SkywayInfo.fromObject(object.skywayInfo[i],long+1)}}return message};PolylineDetails.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.tunnelInfo=[];object.flyoverInfo=[];object.narrowRoadInfo=[];object.bridgeInfo=[];object.skywayInfo=[]}if(message.tunnelInfo&&message.tunnelInfo.length){object.tunnelInfo=[];for(var j=0;j<message.tunnelInfo.length;++j)object.tunnelInfo[j]=$root.google.maps.routing.v2.PolylineDetails.TunnelInfo.toObject(message.tunnelInfo[j],options)}if(message.flyoverInfo&&message.flyoverInfo.length){object.flyoverInfo=[];for(var j=0;j<message.flyoverInfo.length;++j)object.flyoverInfo[j]=$root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.toObject(message.flyoverInfo[j],options)}if(message.narrowRoadInfo&&message.narrowRoadInfo.length){object.narrowRoadInfo=[];for(var j=0;j<message.narrowRoadInfo.length;++j)object.narrowRoadInfo[j]=$root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.toObject(message.narrowRoadInfo[j],options)}if(message.bridgeInfo&&message.bridgeInfo.length){object.bridgeInfo=[];for(var j=0;j<message.bridgeInfo.length;++j)object.bridgeInfo[j]=$root.google.maps.routing.v2.PolylineDetails.BridgeInfo.toObject(message.bridgeInfo[j],options)}if(message.skywayInfo&&message.skywayInfo.length){object.skywayInfo=[];for(var j=0;j<message.skywayInfo.length;++j)object.skywayInfo[j]=$root.google.maps.routing.v2.PolylineDetails.SkywayInfo.toObject(message.skywayInfo[j],options)}return object};PolylineDetails.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PolylineDetails.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.PolylineDetails"};PolylineDetails.PolylinePointIndex=function(){function PolylinePointIndex(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}PolylinePointIndex.prototype.startIndex=null;PolylinePointIndex.prototype.endIndex=null;var $oneOfFields;Object.defineProperty(PolylinePointIndex.prototype,"_startIndex",{get:$util.oneOfGetter($oneOfFields=["startIndex"]),set:$util.oneOfSetter($oneOfFields)});Object.defineProperty(PolylinePointIndex.prototype,"_endIndex",{get:$util.oneOfGetter($oneOfFields=["endIndex"]),set:$util.oneOfSetter($oneOfFields)});PolylinePointIndex.create=function create(properties){return new PolylinePointIndex(properties)};PolylinePointIndex.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.startIndex!=null&&Object.hasOwnProperty.call(message,"startIndex"))writer.uint32(8).int32(message.startIndex);if(message.endIndex!=null&&Object.hasOwnProperty.call(message,"endIndex"))writer.uint32(16).int32(message.endIndex);return writer};PolylinePointIndex.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};PolylinePointIndex.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.startIndex=reader.int32();break}case 2:{message.endIndex=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};PolylinePointIndex.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PolylinePointIndex.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.startIndex!=null&&message.hasOwnProperty("startIndex")){properties._startIndex=1;if(!$util.isInteger(message.startIndex))return"startIndex: integer expected"}if(message.endIndex!=null&&message.hasOwnProperty("endIndex")){properties._endIndex=1;if(!$util.isInteger(message.endIndex))return"endIndex: integer expected"}return null};PolylinePointIndex.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex;if(object.startIndex!=null)message.startIndex=object.startIndex|0;if(object.endIndex!=null)message.endIndex=object.endIndex|0;return message};PolylinePointIndex.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.startIndex!=null&&message.hasOwnProperty("startIndex")){object.startIndex=message.startIndex;if(options.oneofs)object._startIndex="startIndex"}if(message.endIndex!=null&&message.hasOwnProperty("endIndex")){object.endIndex=message.endIndex;if(options.oneofs)object._endIndex="endIndex"}return object};PolylinePointIndex.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PolylinePointIndex.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.PolylineDetails.PolylinePointIndex"};return PolylinePointIndex}();PolylineDetails.RoadFeatureState=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ROAD_FEATURE_STATE_UNSPECIFIED"]=0;values[valuesById[1]="EXISTS"]=1;values[valuesById[2]="DOES_NOT_EXIST"]=2;return values}();PolylineDetails.TunnelInfo=function(){function TunnelInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TunnelInfo.prototype.tunnelPresence=0;TunnelInfo.prototype.polylinePointIndex=null;TunnelInfo.create=function create(properties){return new TunnelInfo(properties)};TunnelInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.tunnelPresence!=null&&Object.hasOwnProperty.call(message,"tunnelPresence"))writer.uint32(8).int32(message.tunnelPresence);if(message.polylinePointIndex!=null&&Object.hasOwnProperty.call(message,"polylinePointIndex"))$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.encode(message.polylinePointIndex,writer.uint32(18).fork()).ldelim();return writer};TunnelInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TunnelInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.PolylineDetails.TunnelInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.tunnelPresence=reader.int32();break}case 2:{message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TunnelInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TunnelInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.tunnelPresence!=null&&message.hasOwnProperty("tunnelPresence"))switch(message.tunnelPresence){default:return"tunnelPresence: enum value expected";case 0:case 1:case 2:break}if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex")){var error=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.verify(message.polylinePointIndex,long+1);if(error)return"polylinePointIndex."+error}return null};TunnelInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.PolylineDetails.TunnelInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.PolylineDetails.TunnelInfo;switch(object.tunnelPresence){default:if(typeof object.tunnelPresence==="number"){message.tunnelPresence=object.tunnelPresence;break}break;case"ROAD_FEATURE_STATE_UNSPECIFIED":case 0:message.tunnelPresence=0;break;case"EXISTS":case 1:message.tunnelPresence=1;break;case"DOES_NOT_EXIST":case 2:message.tunnelPresence=2;break}if(object.polylinePointIndex!=null){if(typeof object.polylinePointIndex!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.TunnelInfo.polylinePointIndex: object expected");message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.fromObject(object.polylinePointIndex,long+1)}return message};TunnelInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.tunnelPresence=options.enums===String?"ROAD_FEATURE_STATE_UNSPECIFIED":0;object.polylinePointIndex=null}if(message.tunnelPresence!=null&&message.hasOwnProperty("tunnelPresence"))object.tunnelPresence=options.enums===String?$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.tunnelPresence]===undefined?message.tunnelPresence:$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.tunnelPresence]:message.tunnelPresence;if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex"))object.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.toObject(message.polylinePointIndex,options);return object};TunnelInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TunnelInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.PolylineDetails.TunnelInfo"};return TunnelInfo}();PolylineDetails.BridgeInfo=function(){function BridgeInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}BridgeInfo.prototype.bridgePresence=0;BridgeInfo.prototype.polylinePointIndex=null;BridgeInfo.create=function create(properties){return new BridgeInfo(properties)};BridgeInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.bridgePresence!=null&&Object.hasOwnProperty.call(message,"bridgePresence"))writer.uint32(8).int32(message.bridgePresence);if(message.polylinePointIndex!=null&&Object.hasOwnProperty.call(message,"polylinePointIndex"))$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.encode(message.polylinePointIndex,writer.uint32(18).fork()).ldelim();return writer};BridgeInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};BridgeInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.PolylineDetails.BridgeInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.bridgePresence=reader.int32();break}case 2:{message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BridgeInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BridgeInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.bridgePresence!=null&&message.hasOwnProperty("bridgePresence"))switch(message.bridgePresence){default:return"bridgePresence: enum value expected";case 0:case 1:case 2:break}if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex")){var error=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.verify(message.polylinePointIndex,long+1);if(error)return"polylinePointIndex."+error}return null};BridgeInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.PolylineDetails.BridgeInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.PolylineDetails.BridgeInfo;switch(object.bridgePresence){default:if(typeof object.bridgePresence==="number"){message.bridgePresence=object.bridgePresence;break}break;case"ROAD_FEATURE_STATE_UNSPECIFIED":case 0:message.bridgePresence=0;break;case"EXISTS":case 1:message.bridgePresence=1;break;case"DOES_NOT_EXIST":case 2:message.bridgePresence=2;break}if(object.polylinePointIndex!=null){if(typeof object.polylinePointIndex!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.BridgeInfo.polylinePointIndex: object expected");message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.fromObject(object.polylinePointIndex,long+1)}return message};BridgeInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.bridgePresence=options.enums===String?"ROAD_FEATURE_STATE_UNSPECIFIED":0;object.polylinePointIndex=null}if(message.bridgePresence!=null&&message.hasOwnProperty("bridgePresence"))object.bridgePresence=options.enums===String?$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.bridgePresence]===undefined?message.bridgePresence:$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.bridgePresence]:message.bridgePresence;if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex"))object.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.toObject(message.polylinePointIndex,options);return object};BridgeInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BridgeInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.PolylineDetails.BridgeInfo"};return BridgeInfo}();PolylineDetails.SkywayInfo=function(){function SkywayInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}SkywayInfo.prototype.skywayPresence=0;SkywayInfo.prototype.polylinePointIndex=null;SkywayInfo.create=function create(properties){return new SkywayInfo(properties)};SkywayInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.skywayPresence!=null&&Object.hasOwnProperty.call(message,"skywayPresence"))writer.uint32(8).int32(message.skywayPresence);if(message.polylinePointIndex!=null&&Object.hasOwnProperty.call(message,"polylinePointIndex"))$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.encode(message.polylinePointIndex,writer.uint32(18).fork()).ldelim();return writer};SkywayInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};SkywayInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.PolylineDetails.SkywayInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.skywayPresence=reader.int32();break}case 2:{message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};SkywayInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SkywayInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.skywayPresence!=null&&message.hasOwnProperty("skywayPresence"))switch(message.skywayPresence){default:return"skywayPresence: enum value expected";case 0:case 1:case 2:break}if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex")){var error=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.verify(message.polylinePointIndex,long+1);if(error)return"polylinePointIndex."+error}return null};SkywayInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.PolylineDetails.SkywayInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.PolylineDetails.SkywayInfo;switch(object.skywayPresence){default:if(typeof object.skywayPresence==="number"){message.skywayPresence=object.skywayPresence;break}break;case"ROAD_FEATURE_STATE_UNSPECIFIED":case 0:message.skywayPresence=0;break;case"EXISTS":case 1:message.skywayPresence=1;break;case"DOES_NOT_EXIST":case 2:message.skywayPresence=2;break}if(object.polylinePointIndex!=null){if(typeof object.polylinePointIndex!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.SkywayInfo.polylinePointIndex: object expected");message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.fromObject(object.polylinePointIndex,long+1)}return message};SkywayInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.skywayPresence=options.enums===String?"ROAD_FEATURE_STATE_UNSPECIFIED":0;object.polylinePointIndex=null}if(message.skywayPresence!=null&&message.hasOwnProperty("skywayPresence"))object.skywayPresence=options.enums===String?$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.skywayPresence]===undefined?message.skywayPresence:$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.skywayPresence]:message.skywayPresence;if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex"))object.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.toObject(message.polylinePointIndex,options);return object};SkywayInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SkywayInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.PolylineDetails.SkywayInfo"};return SkywayInfo}();PolylineDetails.FlyoverInfo=function(){function FlyoverInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}FlyoverInfo.prototype.flyoverPresence=0;FlyoverInfo.prototype.polylinePointIndex=null;FlyoverInfo.create=function create(properties){return new FlyoverInfo(properties)};FlyoverInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.flyoverPresence!=null&&Object.hasOwnProperty.call(message,"flyoverPresence"))writer.uint32(8).int32(message.flyoverPresence);if(message.polylinePointIndex!=null&&Object.hasOwnProperty.call(message,"polylinePointIndex"))$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.encode(message.polylinePointIndex,writer.uint32(18).fork()).ldelim();return writer};FlyoverInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};FlyoverInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.flyoverPresence=reader.int32();break}case 2:{message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FlyoverInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FlyoverInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.flyoverPresence!=null&&message.hasOwnProperty("flyoverPresence"))switch(message.flyoverPresence){default:return"flyoverPresence: enum value expected";case 0:case 1:case 2:break}if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex")){var error=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.verify(message.polylinePointIndex,long+1);if(error)return"polylinePointIndex."+error}return null};FlyoverInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo;switch(object.flyoverPresence){default:if(typeof object.flyoverPresence==="number"){message.flyoverPresence=object.flyoverPresence;break}break;case"ROAD_FEATURE_STATE_UNSPECIFIED":case 0:message.flyoverPresence=0;break;case"EXISTS":case 1:message.flyoverPresence=1;break;case"DOES_NOT_EXIST":case 2:message.flyoverPresence=2;break}if(object.polylinePointIndex!=null){if(typeof object.polylinePointIndex!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.FlyoverInfo.polylinePointIndex: object expected");message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.fromObject(object.polylinePointIndex,long+1)}return message};FlyoverInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.flyoverPresence=options.enums===String?"ROAD_FEATURE_STATE_UNSPECIFIED":0;object.polylinePointIndex=null}if(message.flyoverPresence!=null&&message.hasOwnProperty("flyoverPresence"))object.flyoverPresence=options.enums===String?$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.flyoverPresence]===undefined?message.flyoverPresence:$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.flyoverPresence]:message.flyoverPresence;if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex"))object.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.toObject(message.polylinePointIndex,options);return object};FlyoverInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FlyoverInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.PolylineDetails.FlyoverInfo"};return FlyoverInfo}();PolylineDetails.NarrowRoadInfo=function(){function NarrowRoadInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}NarrowRoadInfo.prototype.narrowRoadPresence=0;NarrowRoadInfo.prototype.polylinePointIndex=null;NarrowRoadInfo.create=function create(properties){return new NarrowRoadInfo(properties)};NarrowRoadInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.narrowRoadPresence!=null&&Object.hasOwnProperty.call(message,"narrowRoadPresence"))writer.uint32(8).int32(message.narrowRoadPresence);if(message.polylinePointIndex!=null&&Object.hasOwnProperty.call(message,"polylinePointIndex"))$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.encode(message.polylinePointIndex,writer.uint32(18).fork()).ldelim();return writer};NarrowRoadInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};NarrowRoadInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.narrowRoadPresence=reader.int32();break}case 2:{message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};NarrowRoadInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};NarrowRoadInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.narrowRoadPresence!=null&&message.hasOwnProperty("narrowRoadPresence"))switch(message.narrowRoadPresence){default:return"narrowRoadPresence: enum value expected";case 0:case 1:case 2:break}if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex")){var error=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.verify(message.polylinePointIndex,long+1);if(error)return"polylinePointIndex."+error}return null};NarrowRoadInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo;switch(object.narrowRoadPresence){default:if(typeof object.narrowRoadPresence==="number"){message.narrowRoadPresence=object.narrowRoadPresence;break}break;case"ROAD_FEATURE_STATE_UNSPECIFIED":case 0:message.narrowRoadPresence=0;break;case"EXISTS":case 1:message.narrowRoadPresence=1;break;case"DOES_NOT_EXIST":case 2:message.narrowRoadPresence=2;break}if(object.polylinePointIndex!=null){if(typeof object.polylinePointIndex!=="object")throw TypeError(".google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.polylinePointIndex: object expected");message.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.fromObject(object.polylinePointIndex,long+1)}return message};NarrowRoadInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.narrowRoadPresence=options.enums===String?"ROAD_FEATURE_STATE_UNSPECIFIED":0;object.polylinePointIndex=null}if(message.narrowRoadPresence!=null&&message.hasOwnProperty("narrowRoadPresence"))object.narrowRoadPresence=options.enums===String?$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.narrowRoadPresence]===undefined?message.narrowRoadPresence:$root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.narrowRoadPresence]:message.narrowRoadPresence;if(message.polylinePointIndex!=null&&message.hasOwnProperty("polylinePointIndex"))object.polylinePointIndex=$root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.toObject(message.polylinePointIndex,options);return object};NarrowRoadInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};NarrowRoadInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.PolylineDetails.NarrowRoadInfo"};return NarrowRoadInfo}();return PolylineDetails}();v2.Route=function(){function Route(properties){this.routeLabels=[];this.legs=[];this.warnings=[];this.optimizedIntermediateWaypointIndex=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Route.prototype.routeLabels=$util.emptyArray;Route.prototype.legs=$util.emptyArray;Route.prototype.distanceMeters=0;Route.prototype.duration=null;Route.prototype.staticDuration=null;Route.prototype.polyline=null;Route.prototype.description="";Route.prototype.warnings=$util.emptyArray;Route.prototype.viewport=null;Route.prototype.travelAdvisory=null;Route.prototype.optimizedIntermediateWaypointIndex=$util.emptyArray;Route.prototype.localizedValues=null;Route.prototype.routeToken="";Route.prototype.polylineDetails=null;Route.create=function create(properties){return new Route(properties)};Route.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.legs!=null&&message.legs.length)for(var i=0;i<message.legs.length;++i)$root.google.maps.routing.v2.RouteLeg.encode(message.legs[i],writer.uint32(10).fork()).ldelim();if(message.distanceMeters!=null&&Object.hasOwnProperty.call(message,"distanceMeters"))writer.uint32(16).int32(message.distanceMeters);if(message.duration!=null&&Object.hasOwnProperty.call(message,"duration"))$root.google.protobuf.Duration.encode(message.duration,writer.uint32(26).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.protobuf.Duration.encode(message.staticDuration,writer.uint32(34).fork()).ldelim();if(message.polyline!=null&&Object.hasOwnProperty.call(message,"polyline"))$root.google.maps.routing.v2.Polyline.encode(message.polyline,writer.uint32(42).fork()).ldelim();if(message.description!=null&&Object.hasOwnProperty.call(message,"description"))writer.uint32(50).string(message.description);if(message.warnings!=null&&message.warnings.length)for(var i=0;i<message.warnings.length;++i)writer.uint32(58).string(message.warnings[i]);if(message.viewport!=null&&Object.hasOwnProperty.call(message,"viewport"))$root.google.geo.type.Viewport.encode(message.viewport,writer.uint32(66).fork()).ldelim();if(message.travelAdvisory!=null&&Object.hasOwnProperty.call(message,"travelAdvisory"))$root.google.maps.routing.v2.RouteTravelAdvisory.encode(message.travelAdvisory,writer.uint32(74).fork()).ldelim();if(message.optimizedIntermediateWaypointIndex!=null&&message.optimizedIntermediateWaypointIndex.length){writer.uint32(82).fork();for(var i=0;i<message.optimizedIntermediateWaypointIndex.length;++i)writer.int32(message.optimizedIntermediateWaypointIndex[i]);writer.ldelim()}if(message.localizedValues!=null&&Object.hasOwnProperty.call(message,"localizedValues"))$root.google.maps.routing.v2.Route.RouteLocalizedValues.encode(message.localizedValues,writer.uint32(90).fork()).ldelim();if(message.routeToken!=null&&Object.hasOwnProperty.call(message,"routeToken"))writer.uint32(98).string(message.routeToken);if(message.routeLabels!=null&&message.routeLabels.length){writer.uint32(106).fork();for(var i=0;i<message.routeLabels.length;++i)writer.int32(message.routeLabels[i]);writer.ldelim()}if(message.polylineDetails!=null&&Object.hasOwnProperty.call(message,"polylineDetails"))$root.google.maps.routing.v2.PolylineDetails.encode(message.polylineDetails,writer.uint32(114).fork()).ldelim();return writer};Route.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Route.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.Route;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 13:{if(!(message.routeLabels&&message.routeLabels.length))message.routeLabels=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.routeLabels.push(reader.int32())}else message.routeLabels.push(reader.int32());break}case 1:{if(!(message.legs&&message.legs.length))message.legs=[];message.legs.push($root.google.maps.routing.v2.RouteLeg.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.distanceMeters=reader.int32();break}case 3:{message.duration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.staticDuration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.polyline=$root.google.maps.routing.v2.Polyline.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.description=reader.string();break}case 7:{if(!(message.warnings&&message.warnings.length))message.warnings=[];message.warnings.push(reader.string());break}case 8:{message.viewport=$root.google.geo.type.Viewport.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.travelAdvisory=$root.google.maps.routing.v2.RouteTravelAdvisory.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{if(!(message.optimizedIntermediateWaypointIndex&&message.optimizedIntermediateWaypointIndex.length))message.optimizedIntermediateWaypointIndex=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.optimizedIntermediateWaypointIndex.push(reader.int32())}else message.optimizedIntermediateWaypointIndex.push(reader.int32());break}case 11:{message.localizedValues=$root.google.maps.routing.v2.Route.RouteLocalizedValues.decode(reader,reader.uint32(),undefined,long+1);break}case 12:{message.routeToken=reader.string();break}case 14:{message.polylineDetails=$root.google.maps.routing.v2.PolylineDetails.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Route.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Route.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.routeLabels!=null&&message.hasOwnProperty("routeLabels")){if(!Array.isArray(message.routeLabels))return"routeLabels: array expected";for(var i=0;i<message.routeLabels.length;++i)switch(message.routeLabels[i]){default:return"routeLabels: enum value[] expected";case 0:case 1:case 2:case 3:case 4:break}}if(message.legs!=null&&message.hasOwnProperty("legs")){if(!Array.isArray(message.legs))return"legs: array expected";for(var i=0;i<message.legs.length;++i){var error=$root.google.maps.routing.v2.RouteLeg.verify(message.legs[i],long+1);if(error)return"legs."+error}}if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))if(!$util.isInteger(message.distanceMeters))return"distanceMeters: integer expected";if(message.duration!=null&&message.hasOwnProperty("duration")){var error=$root.google.protobuf.Duration.verify(message.duration,long+1);if(error)return"duration."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.protobuf.Duration.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}if(message.polyline!=null&&message.hasOwnProperty("polyline")){var error=$root.google.maps.routing.v2.Polyline.verify(message.polyline,long+1);if(error)return"polyline."+error}if(message.description!=null&&message.hasOwnProperty("description"))if(!$util.isString(message.description))return"description: string expected";if(message.warnings!=null&&message.hasOwnProperty("warnings")){if(!Array.isArray(message.warnings))return"warnings: array expected";for(var i=0;i<message.warnings.length;++i)if(!$util.isString(message.warnings[i]))return"warnings: string[] expected"}if(message.viewport!=null&&message.hasOwnProperty("viewport")){var error=$root.google.geo.type.Viewport.verify(message.viewport,long+1);if(error)return"viewport."+error}if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory")){var error=$root.google.maps.routing.v2.RouteTravelAdvisory.verify(message.travelAdvisory,long+1);if(error)return"travelAdvisory."+error}if(message.optimizedIntermediateWaypointIndex!=null&&message.hasOwnProperty("optimizedIntermediateWaypointIndex")){if(!Array.isArray(message.optimizedIntermediateWaypointIndex))return"optimizedIntermediateWaypointIndex: array expected";for(var i=0;i<message.optimizedIntermediateWaypointIndex.length;++i)if(!$util.isInteger(message.optimizedIntermediateWaypointIndex[i]))return"optimizedIntermediateWaypointIndex: integer[] expected"}if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues")){var error=$root.google.maps.routing.v2.Route.RouteLocalizedValues.verify(message.localizedValues,long+1);if(error)return"localizedValues."+error}if(message.routeToken!=null&&message.hasOwnProperty("routeToken"))if(!$util.isString(message.routeToken))return"routeToken: string expected";if(message.polylineDetails!=null&&message.hasOwnProperty("polylineDetails")){var error=$root.google.maps.routing.v2.PolylineDetails.verify(message.polylineDetails,long+1);if(error)return"polylineDetails."+error}return null};Route.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.Route)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.Route;if(object.routeLabels){if(!Array.isArray(object.routeLabels))throw TypeError(".google.maps.routing.v2.Route.routeLabels: array expected");message.routeLabels=[];for(var i=0;i<object.routeLabels.length;++i)switch(object.routeLabels[i]){default:if(typeof object.routeLabels[i]==="number"){message.routeLabels[i]=object.routeLabels[i];break}case"ROUTE_LABEL_UNSPECIFIED":case 0:message.routeLabels[i]=0;break;case"DEFAULT_ROUTE":case 1:message.routeLabels[i]=1;break;case"DEFAULT_ROUTE_ALTERNATE":case 2:message.routeLabels[i]=2;break;case"FUEL_EFFICIENT":case 3:message.routeLabels[i]=3;break;case"SHORTER_DISTANCE":case 4:message.routeLabels[i]=4;break}}if(object.legs){if(!Array.isArray(object.legs))throw TypeError(".google.maps.routing.v2.Route.legs: array expected");message.legs=[];for(var i=0;i<object.legs.length;++i){if(typeof object.legs[i]!=="object")throw TypeError(".google.maps.routing.v2.Route.legs: object expected");message.legs[i]=$root.google.maps.routing.v2.RouteLeg.fromObject(object.legs[i],long+1)}}if(object.distanceMeters!=null)message.distanceMeters=object.distanceMeters|0;if(object.duration!=null){if(typeof object.duration!=="object")throw TypeError(".google.maps.routing.v2.Route.duration: object expected");message.duration=$root.google.protobuf.Duration.fromObject(object.duration,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.Route.staticDuration: object expected");message.staticDuration=$root.google.protobuf.Duration.fromObject(object.staticDuration,long+1)}if(object.polyline!=null){if(typeof object.polyline!=="object")throw TypeError(".google.maps.routing.v2.Route.polyline: object expected");message.polyline=$root.google.maps.routing.v2.Polyline.fromObject(object.polyline,long+1)}if(object.description!=null)message.description=String(object.description);if(object.warnings){if(!Array.isArray(object.warnings))throw TypeError(".google.maps.routing.v2.Route.warnings: array expected");message.warnings=[];for(var i=0;i<object.warnings.length;++i)message.warnings[i]=String(object.warnings[i])}if(object.viewport!=null){if(typeof object.viewport!=="object")throw TypeError(".google.maps.routing.v2.Route.viewport: object expected");message.viewport=$root.google.geo.type.Viewport.fromObject(object.viewport,long+1)}if(object.travelAdvisory!=null){if(typeof object.travelAdvisory!=="object")throw TypeError(".google.maps.routing.v2.Route.travelAdvisory: object expected");message.travelAdvisory=$root.google.maps.routing.v2.RouteTravelAdvisory.fromObject(object.travelAdvisory,long+1)}if(object.optimizedIntermediateWaypointIndex){if(!Array.isArray(object.optimizedIntermediateWaypointIndex))throw TypeError(".google.maps.routing.v2.Route.optimizedIntermediateWaypointIndex: array expected");message.optimizedIntermediateWaypointIndex=[];for(var i=0;i<object.optimizedIntermediateWaypointIndex.length;++i)message.optimizedIntermediateWaypointIndex[i]=object.optimizedIntermediateWaypointIndex[i]|0}if(object.localizedValues!=null){if(typeof object.localizedValues!=="object")throw TypeError(".google.maps.routing.v2.Route.localizedValues: object expected");message.localizedValues=$root.google.maps.routing.v2.Route.RouteLocalizedValues.fromObject(object.localizedValues,long+1)}if(object.routeToken!=null)message.routeToken=String(object.routeToken);if(object.polylineDetails!=null){if(typeof object.polylineDetails!=="object")throw TypeError(".google.maps.routing.v2.Route.polylineDetails: object expected");message.polylineDetails=$root.google.maps.routing.v2.PolylineDetails.fromObject(object.polylineDetails,long+1)}return message};Route.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.legs=[];object.warnings=[];object.optimizedIntermediateWaypointIndex=[];object.routeLabels=[]}if(options.defaults){object.distanceMeters=0;object.duration=null;object.staticDuration=null;object.polyline=null;object.description="";object.viewport=null;object.travelAdvisory=null;object.localizedValues=null;object.routeToken="";object.polylineDetails=null}if(message.legs&&message.legs.length){object.legs=[];for(var j=0;j<message.legs.length;++j)object.legs[j]=$root.google.maps.routing.v2.RouteLeg.toObject(message.legs[j],options)}if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))object.distanceMeters=message.distanceMeters;if(message.duration!=null&&message.hasOwnProperty("duration"))object.duration=$root.google.protobuf.Duration.toObject(message.duration,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.protobuf.Duration.toObject(message.staticDuration,options);if(message.polyline!=null&&message.hasOwnProperty("polyline"))object.polyline=$root.google.maps.routing.v2.Polyline.toObject(message.polyline,options);if(message.description!=null&&message.hasOwnProperty("description"))object.description=message.description;if(message.warnings&&message.warnings.length){object.warnings=[];for(var j=0;j<message.warnings.length;++j)object.warnings[j]=message.warnings[j]}if(message.viewport!=null&&message.hasOwnProperty("viewport"))object.viewport=$root.google.geo.type.Viewport.toObject(message.viewport,options);if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory"))object.travelAdvisory=$root.google.maps.routing.v2.RouteTravelAdvisory.toObject(message.travelAdvisory,options);if(message.optimizedIntermediateWaypointIndex&&message.optimizedIntermediateWaypointIndex.length){object.optimizedIntermediateWaypointIndex=[];for(var j=0;j<message.optimizedIntermediateWaypointIndex.length;++j)object.optimizedIntermediateWaypointIndex[j]=message.optimizedIntermediateWaypointIndex[j]}if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues"))object.localizedValues=$root.google.maps.routing.v2.Route.RouteLocalizedValues.toObject(message.localizedValues,options);if(message.routeToken!=null&&message.hasOwnProperty("routeToken"))object.routeToken=message.routeToken;if(message.routeLabels&&message.routeLabels.length){object.routeLabels=[];for(var j=0;j<message.routeLabels.length;++j)object.routeLabels[j]=options.enums===String?$root.google.maps.routing.v2.RouteLabel[message.routeLabels[j]]===undefined?message.routeLabels[j]:$root.google.maps.routing.v2.RouteLabel[message.routeLabels[j]]:message.routeLabels[j]}if(message.polylineDetails!=null&&message.hasOwnProperty("polylineDetails"))object.polylineDetails=$root.google.maps.routing.v2.PolylineDetails.toObject(message.polylineDetails,options);return object};Route.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Route.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.Route"};Route.RouteLocalizedValues=function(){function RouteLocalizedValues(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLocalizedValues.prototype.distance=null;RouteLocalizedValues.prototype.duration=null;RouteLocalizedValues.prototype.staticDuration=null;RouteLocalizedValues.prototype.transitFare=null;RouteLocalizedValues.create=function create(properties){return new RouteLocalizedValues(properties)};RouteLocalizedValues.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.distance!=null&&Object.hasOwnProperty.call(message,"distance"))$root.google.type.LocalizedText.encode(message.distance,writer.uint32(10).fork()).ldelim();if(message.duration!=null&&Object.hasOwnProperty.call(message,"duration"))$root.google.type.LocalizedText.encode(message.duration,writer.uint32(18).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.type.LocalizedText.encode(message.staticDuration,writer.uint32(26).fork()).ldelim();if(message.transitFare!=null&&Object.hasOwnProperty.call(message,"transitFare"))$root.google.type.LocalizedText.encode(message.transitFare,writer.uint32(34).fork()).ldelim();return writer};RouteLocalizedValues.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLocalizedValues.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.Route.RouteLocalizedValues;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.distance=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.duration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.staticDuration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.transitFare=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteLocalizedValues.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLocalizedValues.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.distance!=null&&message.hasOwnProperty("distance")){var error=$root.google.type.LocalizedText.verify(message.distance,long+1);if(error)return"distance."+error}if(message.duration!=null&&message.hasOwnProperty("duration")){var error=$root.google.type.LocalizedText.verify(message.duration,long+1);if(error)return"duration."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.type.LocalizedText.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}if(message.transitFare!=null&&message.hasOwnProperty("transitFare")){var error=$root.google.type.LocalizedText.verify(message.transitFare,long+1);if(error)return"transitFare."+error}return null};RouteLocalizedValues.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.Route.RouteLocalizedValues)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.Route.RouteLocalizedValues;if(object.distance!=null){if(typeof object.distance!=="object")throw TypeError(".google.maps.routing.v2.Route.RouteLocalizedValues.distance: object expected");message.distance=$root.google.type.LocalizedText.fromObject(object.distance,long+1)}if(object.duration!=null){if(typeof object.duration!=="object")throw TypeError(".google.maps.routing.v2.Route.RouteLocalizedValues.duration: object expected");message.duration=$root.google.type.LocalizedText.fromObject(object.duration,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.Route.RouteLocalizedValues.staticDuration: object expected");message.staticDuration=$root.google.type.LocalizedText.fromObject(object.staticDuration,long+1)}if(object.transitFare!=null){if(typeof object.transitFare!=="object")throw TypeError(".google.maps.routing.v2.Route.RouteLocalizedValues.transitFare: object expected");message.transitFare=$root.google.type.LocalizedText.fromObject(object.transitFare,long+1)}return message};RouteLocalizedValues.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.distance=null;object.duration=null;object.staticDuration=null;object.transitFare=null}if(message.distance!=null&&message.hasOwnProperty("distance"))object.distance=$root.google.type.LocalizedText.toObject(message.distance,options);if(message.duration!=null&&message.hasOwnProperty("duration"))object.duration=$root.google.type.LocalizedText.toObject(message.duration,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.type.LocalizedText.toObject(message.staticDuration,options);if(message.transitFare!=null&&message.hasOwnProperty("transitFare"))object.transitFare=$root.google.type.LocalizedText.toObject(message.transitFare,options);return object};RouteLocalizedValues.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLocalizedValues.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.Route.RouteLocalizedValues"};return RouteLocalizedValues}();return Route}();v2.RouteTravelAdvisory=function(){function RouteTravelAdvisory(properties){this.speedReadingIntervals=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteTravelAdvisory.prototype.tollInfo=null;RouteTravelAdvisory.prototype.speedReadingIntervals=$util.emptyArray;RouteTravelAdvisory.prototype.fuelConsumptionMicroliters=$util.Long?$util.Long.fromBits(0,0,false):0;RouteTravelAdvisory.prototype.routeRestrictionsPartiallyIgnored=false;RouteTravelAdvisory.prototype.transitFare=null;RouteTravelAdvisory.create=function create(properties){return new RouteTravelAdvisory(properties)};RouteTravelAdvisory.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.tollInfo!=null&&Object.hasOwnProperty.call(message,"tollInfo"))$root.google.maps.routing.v2.TollInfo.encode(message.tollInfo,writer.uint32(18).fork()).ldelim();if(message.speedReadingIntervals!=null&&message.speedReadingIntervals.length)for(var i=0;i<message.speedReadingIntervals.length;++i)$root.google.maps.routing.v2.SpeedReadingInterval.encode(message.speedReadingIntervals[i],writer.uint32(26).fork()).ldelim();if(message.fuelConsumptionMicroliters!=null&&Object.hasOwnProperty.call(message,"fuelConsumptionMicroliters"))writer.uint32(40).int64(message.fuelConsumptionMicroliters);if(message.routeRestrictionsPartiallyIgnored!=null&&Object.hasOwnProperty.call(message,"routeRestrictionsPartiallyIgnored"))writer.uint32(48).bool(message.routeRestrictionsPartiallyIgnored);if(message.transitFare!=null&&Object.hasOwnProperty.call(message,"transitFare"))$root.google.type.Money.encode(message.transitFare,writer.uint32(58).fork()).ldelim();return writer};RouteTravelAdvisory.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteTravelAdvisory.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteTravelAdvisory;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 2:{message.tollInfo=$root.google.maps.routing.v2.TollInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{if(!(message.speedReadingIntervals&&message.speedReadingIntervals.length))message.speedReadingIntervals=[];message.speedReadingIntervals.push($root.google.maps.routing.v2.SpeedReadingInterval.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{message.fuelConsumptionMicroliters=reader.int64();break}case 6:{message.routeRestrictionsPartiallyIgnored=reader.bool();break}case 7:{message.transitFare=$root.google.type.Money.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteTravelAdvisory.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteTravelAdvisory.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.tollInfo!=null&&message.hasOwnProperty("tollInfo")){var error=$root.google.maps.routing.v2.TollInfo.verify(message.tollInfo,long+1);if(error)return"tollInfo."+error}if(message.speedReadingIntervals!=null&&message.hasOwnProperty("speedReadingIntervals")){if(!Array.isArray(message.speedReadingIntervals))return"speedReadingIntervals: array expected";for(var i=0;i<message.speedReadingIntervals.length;++i){var error=$root.google.maps.routing.v2.SpeedReadingInterval.verify(message.speedReadingIntervals[i],long+1);if(error)return"speedReadingIntervals."+error}}if(message.fuelConsumptionMicroliters!=null&&message.hasOwnProperty("fuelConsumptionMicroliters"))if(!$util.isInteger(message.fuelConsumptionMicroliters)&&!(message.fuelConsumptionMicroliters&&$util.isInteger(message.fuelConsumptionMicroliters.low)&&$util.isInteger(message.fuelConsumptionMicroliters.high)))return"fuelConsumptionMicroliters: integer|Long expected";if(message.routeRestrictionsPartiallyIgnored!=null&&message.hasOwnProperty("routeRestrictionsPartiallyIgnored"))if(typeof message.routeRestrictionsPartiallyIgnored!=="boolean")return"routeRestrictionsPartiallyIgnored: boolean expected";if(message.transitFare!=null&&message.hasOwnProperty("transitFare")){var error=$root.google.type.Money.verify(message.transitFare,long+1);if(error)return"transitFare."+error}return null};RouteTravelAdvisory.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteTravelAdvisory)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteTravelAdvisory;if(object.tollInfo!=null){if(typeof object.tollInfo!=="object")throw TypeError(".google.maps.routing.v2.RouteTravelAdvisory.tollInfo: object expected");message.tollInfo=$root.google.maps.routing.v2.TollInfo.fromObject(object.tollInfo,long+1)}if(object.speedReadingIntervals){if(!Array.isArray(object.speedReadingIntervals))throw TypeError(".google.maps.routing.v2.RouteTravelAdvisory.speedReadingIntervals: array expected");message.speedReadingIntervals=[];for(var i=0;i<object.speedReadingIntervals.length;++i){if(typeof object.speedReadingIntervals[i]!=="object")throw TypeError(".google.maps.routing.v2.RouteTravelAdvisory.speedReadingIntervals: object expected");message.speedReadingIntervals[i]=$root.google.maps.routing.v2.SpeedReadingInterval.fromObject(object.speedReadingIntervals[i],long+1)}}if(object.fuelConsumptionMicroliters!=null)if($util.Long)(message.fuelConsumptionMicroliters=$util.Long.fromValue(object.fuelConsumptionMicroliters)).unsigned=false;else if(typeof object.fuelConsumptionMicroliters==="string")message.fuelConsumptionMicroliters=parseInt(object.fuelConsumptionMicroliters,10);else if(typeof object.fuelConsumptionMicroliters==="number")message.fuelConsumptionMicroliters=object.fuelConsumptionMicroliters;else if(typeof object.fuelConsumptionMicroliters==="object")message.fuelConsumptionMicroliters=new $util.LongBits(object.fuelConsumptionMicroliters.low>>>0,object.fuelConsumptionMicroliters.high>>>0).toNumber();if(object.routeRestrictionsPartiallyIgnored!=null)message.routeRestrictionsPartiallyIgnored=Boolean(object.routeRestrictionsPartiallyIgnored);if(object.transitFare!=null){if(typeof object.transitFare!=="object")throw TypeError(".google.maps.routing.v2.RouteTravelAdvisory.transitFare: object expected");message.transitFare=$root.google.type.Money.fromObject(object.transitFare,long+1)}return message};RouteTravelAdvisory.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.speedReadingIntervals=[];if(options.defaults){object.tollInfo=null;if($util.Long){var long=new $util.Long(0,0,false);object.fuelConsumptionMicroliters=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.fuelConsumptionMicroliters=options.longs===String?"0":0;object.routeRestrictionsPartiallyIgnored=false;object.transitFare=null}if(message.tollInfo!=null&&message.hasOwnProperty("tollInfo"))object.tollInfo=$root.google.maps.routing.v2.TollInfo.toObject(message.tollInfo,options);if(message.speedReadingIntervals&&message.speedReadingIntervals.length){object.speedReadingIntervals=[];for(var j=0;j<message.speedReadingIntervals.length;++j)object.speedReadingIntervals[j]=$root.google.maps.routing.v2.SpeedReadingInterval.toObject(message.speedReadingIntervals[j],options)}if(message.fuelConsumptionMicroliters!=null&&message.hasOwnProperty("fuelConsumptionMicroliters"))if(typeof message.fuelConsumptionMicroliters==="number")object.fuelConsumptionMicroliters=options.longs===String?String(message.fuelConsumptionMicroliters):message.fuelConsumptionMicroliters;else object.fuelConsumptionMicroliters=options.longs===String?$util.Long.prototype.toString.call(message.fuelConsumptionMicroliters):options.longs===Number?new $util.LongBits(message.fuelConsumptionMicroliters.low>>>0,message.fuelConsumptionMicroliters.high>>>0).toNumber():message.fuelConsumptionMicroliters;if(message.routeRestrictionsPartiallyIgnored!=null&&message.hasOwnProperty("routeRestrictionsPartiallyIgnored"))object.routeRestrictionsPartiallyIgnored=message.routeRestrictionsPartiallyIgnored;if(message.transitFare!=null&&message.hasOwnProperty("transitFare"))object.transitFare=$root.google.type.Money.toObject(message.transitFare,options);return object};RouteTravelAdvisory.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteTravelAdvisory.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteTravelAdvisory"};return RouteTravelAdvisory}();v2.RouteLegTravelAdvisory=function(){function RouteLegTravelAdvisory(properties){this.speedReadingIntervals=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLegTravelAdvisory.prototype.tollInfo=null;RouteLegTravelAdvisory.prototype.speedReadingIntervals=$util.emptyArray;RouteLegTravelAdvisory.create=function create(properties){return new RouteLegTravelAdvisory(properties)};RouteLegTravelAdvisory.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.tollInfo!=null&&Object.hasOwnProperty.call(message,"tollInfo"))$root.google.maps.routing.v2.TollInfo.encode(message.tollInfo,writer.uint32(10).fork()).ldelim();if(message.speedReadingIntervals!=null&&message.speedReadingIntervals.length)for(var i=0;i<message.speedReadingIntervals.length;++i)$root.google.maps.routing.v2.SpeedReadingInterval.encode(message.speedReadingIntervals[i],writer.uint32(18).fork()).ldelim();return writer};RouteLegTravelAdvisory.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLegTravelAdvisory.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegTravelAdvisory;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.tollInfo=$root.google.maps.routing.v2.TollInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(!(message.speedReadingIntervals&&message.speedReadingIntervals.length))message.speedReadingIntervals=[];message.speedReadingIntervals.push($root.google.maps.routing.v2.SpeedReadingInterval.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};RouteLegTravelAdvisory.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLegTravelAdvisory.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.tollInfo!=null&&message.hasOwnProperty("tollInfo")){var error=$root.google.maps.routing.v2.TollInfo.verify(message.tollInfo,long+1);if(error)return"tollInfo."+error}if(message.speedReadingIntervals!=null&&message.hasOwnProperty("speedReadingIntervals")){if(!Array.isArray(message.speedReadingIntervals))return"speedReadingIntervals: array expected";for(var i=0;i<message.speedReadingIntervals.length;++i){var error=$root.google.maps.routing.v2.SpeedReadingInterval.verify(message.speedReadingIntervals[i],long+1);if(error)return"speedReadingIntervals."+error}}return null};RouteLegTravelAdvisory.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegTravelAdvisory)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegTravelAdvisory;if(object.tollInfo!=null){if(typeof object.tollInfo!=="object")throw TypeError(".google.maps.routing.v2.RouteLegTravelAdvisory.tollInfo: object expected");message.tollInfo=$root.google.maps.routing.v2.TollInfo.fromObject(object.tollInfo,long+1)}if(object.speedReadingIntervals){if(!Array.isArray(object.speedReadingIntervals))throw TypeError(".google.maps.routing.v2.RouteLegTravelAdvisory.speedReadingIntervals: array expected");message.speedReadingIntervals=[];for(var i=0;i<object.speedReadingIntervals.length;++i){if(typeof object.speedReadingIntervals[i]!=="object")throw TypeError(".google.maps.routing.v2.RouteLegTravelAdvisory.speedReadingIntervals: object expected");message.speedReadingIntervals[i]=$root.google.maps.routing.v2.SpeedReadingInterval.fromObject(object.speedReadingIntervals[i],long+1)}}return message};RouteLegTravelAdvisory.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.speedReadingIntervals=[];if(options.defaults)object.tollInfo=null;if(message.tollInfo!=null&&message.hasOwnProperty("tollInfo"))object.tollInfo=$root.google.maps.routing.v2.TollInfo.toObject(message.tollInfo,options);if(message.speedReadingIntervals&&message.speedReadingIntervals.length){object.speedReadingIntervals=[];for(var j=0;j<message.speedReadingIntervals.length;++j)object.speedReadingIntervals[j]=$root.google.maps.routing.v2.SpeedReadingInterval.toObject(message.speedReadingIntervals[j],options)}return object};RouteLegTravelAdvisory.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLegTravelAdvisory.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegTravelAdvisory"};return RouteLegTravelAdvisory}();v2.RouteLegStepTravelAdvisory=function(){function RouteLegStepTravelAdvisory(properties){this.speedReadingIntervals=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLegStepTravelAdvisory.prototype.speedReadingIntervals=$util.emptyArray;RouteLegStepTravelAdvisory.create=function create(properties){return new RouteLegStepTravelAdvisory(properties)};RouteLegStepTravelAdvisory.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.speedReadingIntervals!=null&&message.speedReadingIntervals.length)for(var i=0;i<message.speedReadingIntervals.length;++i)$root.google.maps.routing.v2.SpeedReadingInterval.encode(message.speedReadingIntervals[i],writer.uint32(10).fork()).ldelim();return writer};RouteLegStepTravelAdvisory.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLegStepTravelAdvisory.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegStepTravelAdvisory;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.speedReadingIntervals&&message.speedReadingIntervals.length))message.speedReadingIntervals=[];message.speedReadingIntervals.push($root.google.maps.routing.v2.SpeedReadingInterval.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};RouteLegStepTravelAdvisory.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLegStepTravelAdvisory.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.speedReadingIntervals!=null&&message.hasOwnProperty("speedReadingIntervals")){if(!Array.isArray(message.speedReadingIntervals))return"speedReadingIntervals: array expected";for(var i=0;i<message.speedReadingIntervals.length;++i){var error=$root.google.maps.routing.v2.SpeedReadingInterval.verify(message.speedReadingIntervals[i],long+1);if(error)return"speedReadingIntervals."+error}}return null};RouteLegStepTravelAdvisory.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegStepTravelAdvisory)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegStepTravelAdvisory;if(object.speedReadingIntervals){if(!Array.isArray(object.speedReadingIntervals))throw TypeError(".google.maps.routing.v2.RouteLegStepTravelAdvisory.speedReadingIntervals: array expected");message.speedReadingIntervals=[];for(var i=0;i<object.speedReadingIntervals.length;++i){if(typeof object.speedReadingIntervals[i]!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTravelAdvisory.speedReadingIntervals: object expected");message.speedReadingIntervals[i]=$root.google.maps.routing.v2.SpeedReadingInterval.fromObject(object.speedReadingIntervals[i],long+1)}}return message};RouteLegStepTravelAdvisory.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.speedReadingIntervals=[];if(message.speedReadingIntervals&&message.speedReadingIntervals.length){object.speedReadingIntervals=[];for(var j=0;j<message.speedReadingIntervals.length;++j)object.speedReadingIntervals[j]=$root.google.maps.routing.v2.SpeedReadingInterval.toObject(message.speedReadingIntervals[j],options)}return object};RouteLegStepTravelAdvisory.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLegStepTravelAdvisory.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegStepTravelAdvisory"};return RouteLegStepTravelAdvisory}();v2.RouteLeg=function(){function RouteLeg(properties){this.steps=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLeg.prototype.distanceMeters=0;RouteLeg.prototype.duration=null;RouteLeg.prototype.staticDuration=null;RouteLeg.prototype.polyline=null;RouteLeg.prototype.startLocation=null;RouteLeg.prototype.endLocation=null;RouteLeg.prototype.steps=$util.emptyArray;RouteLeg.prototype.travelAdvisory=null;RouteLeg.prototype.localizedValues=null;RouteLeg.prototype.stepsOverview=null;RouteLeg.create=function create(properties){return new RouteLeg(properties)};RouteLeg.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.distanceMeters!=null&&Object.hasOwnProperty.call(message,"distanceMeters"))writer.uint32(8).int32(message.distanceMeters);if(message.duration!=null&&Object.hasOwnProperty.call(message,"duration"))$root.google.protobuf.Duration.encode(message.duration,writer.uint32(18).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.protobuf.Duration.encode(message.staticDuration,writer.uint32(26).fork()).ldelim();if(message.polyline!=null&&Object.hasOwnProperty.call(message,"polyline"))$root.google.maps.routing.v2.Polyline.encode(message.polyline,writer.uint32(34).fork()).ldelim();if(message.startLocation!=null&&Object.hasOwnProperty.call(message,"startLocation"))$root.google.maps.routing.v2.Location.encode(message.startLocation,writer.uint32(42).fork()).ldelim();if(message.endLocation!=null&&Object.hasOwnProperty.call(message,"endLocation"))$root.google.maps.routing.v2.Location.encode(message.endLocation,writer.uint32(50).fork()).ldelim();if(message.steps!=null&&message.steps.length)for(var i=0;i<message.steps.length;++i)$root.google.maps.routing.v2.RouteLegStep.encode(message.steps[i],writer.uint32(58).fork()).ldelim();if(message.travelAdvisory!=null&&Object.hasOwnProperty.call(message,"travelAdvisory"))$root.google.maps.routing.v2.RouteLegTravelAdvisory.encode(message.travelAdvisory,writer.uint32(66).fork()).ldelim();if(message.localizedValues!=null&&Object.hasOwnProperty.call(message,"localizedValues"))$root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.encode(message.localizedValues,writer.uint32(74).fork()).ldelim();if(message.stepsOverview!=null&&Object.hasOwnProperty.call(message,"stepsOverview"))$root.google.maps.routing.v2.RouteLeg.StepsOverview.encode(message.stepsOverview,writer.uint32(82).fork()).ldelim();return writer};RouteLeg.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLeg.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLeg;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.distanceMeters=reader.int32();break}case 2:{message.duration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.staticDuration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.polyline=$root.google.maps.routing.v2.Polyline.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.startLocation=$root.google.maps.routing.v2.Location.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.endLocation=$root.google.maps.routing.v2.Location.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{if(!(message.steps&&message.steps.length))message.steps=[];message.steps.push($root.google.maps.routing.v2.RouteLegStep.decode(reader,reader.uint32(),undefined,long+1));break}case 8:{message.travelAdvisory=$root.google.maps.routing.v2.RouteLegTravelAdvisory.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.localizedValues=$root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.stepsOverview=$root.google.maps.routing.v2.RouteLeg.StepsOverview.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteLeg.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLeg.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))if(!$util.isInteger(message.distanceMeters))return"distanceMeters: integer expected";if(message.duration!=null&&message.hasOwnProperty("duration")){var error=$root.google.protobuf.Duration.verify(message.duration,long+1);if(error)return"duration."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.protobuf.Duration.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}if(message.polyline!=null&&message.hasOwnProperty("polyline")){var error=$root.google.maps.routing.v2.Polyline.verify(message.polyline,long+1);if(error)return"polyline."+error}if(message.startLocation!=null&&message.hasOwnProperty("startLocation")){var error=$root.google.maps.routing.v2.Location.verify(message.startLocation,long+1);if(error)return"startLocation."+error}if(message.endLocation!=null&&message.hasOwnProperty("endLocation")){var error=$root.google.maps.routing.v2.Location.verify(message.endLocation,long+1);if(error)return"endLocation."+error}if(message.steps!=null&&message.hasOwnProperty("steps")){if(!Array.isArray(message.steps))return"steps: array expected";for(var i=0;i<message.steps.length;++i){var error=$root.google.maps.routing.v2.RouteLegStep.verify(message.steps[i],long+1);if(error)return"steps."+error}}if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory")){var error=$root.google.maps.routing.v2.RouteLegTravelAdvisory.verify(message.travelAdvisory,long+1);if(error)return"travelAdvisory."+error}if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues")){var error=$root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.verify(message.localizedValues,long+1);if(error)return"localizedValues."+error}if(message.stepsOverview!=null&&message.hasOwnProperty("stepsOverview")){var error=$root.google.maps.routing.v2.RouteLeg.StepsOverview.verify(message.stepsOverview,long+1);if(error)return"stepsOverview."+error}return null};RouteLeg.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLeg)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLeg;if(object.distanceMeters!=null)message.distanceMeters=object.distanceMeters|0;if(object.duration!=null){if(typeof object.duration!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.duration: object expected");message.duration=$root.google.protobuf.Duration.fromObject(object.duration,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.staticDuration: object expected");message.staticDuration=$root.google.protobuf.Duration.fromObject(object.staticDuration,long+1)}if(object.polyline!=null){if(typeof object.polyline!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.polyline: object expected");message.polyline=$root.google.maps.routing.v2.Polyline.fromObject(object.polyline,long+1)}if(object.startLocation!=null){if(typeof object.startLocation!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.startLocation: object expected");message.startLocation=$root.google.maps.routing.v2.Location.fromObject(object.startLocation,long+1)}if(object.endLocation!=null){if(typeof object.endLocation!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.endLocation: object expected");message.endLocation=$root.google.maps.routing.v2.Location.fromObject(object.endLocation,long+1)}if(object.steps){if(!Array.isArray(object.steps))throw TypeError(".google.maps.routing.v2.RouteLeg.steps: array expected");message.steps=[];for(var i=0;i<object.steps.length;++i){if(typeof object.steps[i]!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.steps: object expected");message.steps[i]=$root.google.maps.routing.v2.RouteLegStep.fromObject(object.steps[i],long+1)}}if(object.travelAdvisory!=null){if(typeof object.travelAdvisory!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.travelAdvisory: object expected");message.travelAdvisory=$root.google.maps.routing.v2.RouteLegTravelAdvisory.fromObject(object.travelAdvisory,long+1)}if(object.localizedValues!=null){if(typeof object.localizedValues!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.localizedValues: object expected");message.localizedValues=$root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.fromObject(object.localizedValues,long+1)}if(object.stepsOverview!=null){if(typeof object.stepsOverview!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.stepsOverview: object expected");message.stepsOverview=$root.google.maps.routing.v2.RouteLeg.StepsOverview.fromObject(object.stepsOverview,long+1)}return message};RouteLeg.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.steps=[];if(options.defaults){object.distanceMeters=0;object.duration=null;object.staticDuration=null;object.polyline=null;object.startLocation=null;object.endLocation=null;object.travelAdvisory=null;object.localizedValues=null;object.stepsOverview=null}if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))object.distanceMeters=message.distanceMeters;if(message.duration!=null&&message.hasOwnProperty("duration"))object.duration=$root.google.protobuf.Duration.toObject(message.duration,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.protobuf.Duration.toObject(message.staticDuration,options);if(message.polyline!=null&&message.hasOwnProperty("polyline"))object.polyline=$root.google.maps.routing.v2.Polyline.toObject(message.polyline,options);if(message.startLocation!=null&&message.hasOwnProperty("startLocation"))object.startLocation=$root.google.maps.routing.v2.Location.toObject(message.startLocation,options);if(message.endLocation!=null&&message.hasOwnProperty("endLocation"))object.endLocation=$root.google.maps.routing.v2.Location.toObject(message.endLocation,options);if(message.steps&&message.steps.length){object.steps=[];for(var j=0;j<message.steps.length;++j)object.steps[j]=$root.google.maps.routing.v2.RouteLegStep.toObject(message.steps[j],options)}if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory"))object.travelAdvisory=$root.google.maps.routing.v2.RouteLegTravelAdvisory.toObject(message.travelAdvisory,options);if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues"))object.localizedValues=$root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.toObject(message.localizedValues,options);if(message.stepsOverview!=null&&message.hasOwnProperty("stepsOverview"))object.stepsOverview=$root.google.maps.routing.v2.RouteLeg.StepsOverview.toObject(message.stepsOverview,options);return object};RouteLeg.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLeg.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLeg"};RouteLeg.RouteLegLocalizedValues=function(){function RouteLegLocalizedValues(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLegLocalizedValues.prototype.distance=null;RouteLegLocalizedValues.prototype.duration=null;RouteLegLocalizedValues.prototype.staticDuration=null;RouteLegLocalizedValues.create=function create(properties){return new RouteLegLocalizedValues(properties)};RouteLegLocalizedValues.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.distance!=null&&Object.hasOwnProperty.call(message,"distance"))$root.google.type.LocalizedText.encode(message.distance,writer.uint32(10).fork()).ldelim();if(message.duration!=null&&Object.hasOwnProperty.call(message,"duration"))$root.google.type.LocalizedText.encode(message.duration,writer.uint32(18).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.type.LocalizedText.encode(message.staticDuration,writer.uint32(26).fork()).ldelim();return writer};RouteLegLocalizedValues.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLegLocalizedValues.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.distance=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.duration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.staticDuration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteLegLocalizedValues.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLegLocalizedValues.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.distance!=null&&message.hasOwnProperty("distance")){var error=$root.google.type.LocalizedText.verify(message.distance,long+1);if(error)return"distance."+error}if(message.duration!=null&&message.hasOwnProperty("duration")){var error=$root.google.type.LocalizedText.verify(message.duration,long+1);if(error)return"duration."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.type.LocalizedText.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}return null};RouteLegLocalizedValues.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues;if(object.distance!=null){if(typeof object.distance!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.distance: object expected");message.distance=$root.google.type.LocalizedText.fromObject(object.distance,long+1)}if(object.duration!=null){if(typeof object.duration!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.duration: object expected");message.duration=$root.google.type.LocalizedText.fromObject(object.duration,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues.staticDuration: object expected");message.staticDuration=$root.google.type.LocalizedText.fromObject(object.staticDuration,long+1)}return message};RouteLegLocalizedValues.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.distance=null;object.duration=null;object.staticDuration=null}if(message.distance!=null&&message.hasOwnProperty("distance"))object.distance=$root.google.type.LocalizedText.toObject(message.distance,options);if(message.duration!=null&&message.hasOwnProperty("duration"))object.duration=$root.google.type.LocalizedText.toObject(message.duration,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.type.LocalizedText.toObject(message.staticDuration,options);return object};RouteLegLocalizedValues.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLegLocalizedValues.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLeg.RouteLegLocalizedValues"};return RouteLegLocalizedValues}();RouteLeg.StepsOverview=function(){function StepsOverview(properties){this.multiModalSegments=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}StepsOverview.prototype.multiModalSegments=$util.emptyArray;StepsOverview.create=function create(properties){return new StepsOverview(properties)};StepsOverview.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.multiModalSegments!=null&&message.multiModalSegments.length)for(var i=0;i<message.multiModalSegments.length;++i)$root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment.encode(message.multiModalSegments[i],writer.uint32(10).fork()).ldelim();return writer};StepsOverview.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};StepsOverview.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLeg.StepsOverview;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.multiModalSegments&&message.multiModalSegments.length))message.multiModalSegments=[];message.multiModalSegments.push($root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};StepsOverview.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StepsOverview.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.multiModalSegments!=null&&message.hasOwnProperty("multiModalSegments")){if(!Array.isArray(message.multiModalSegments))return"multiModalSegments: array expected";for(var i=0;i<message.multiModalSegments.length;++i){var error=$root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment.verify(message.multiModalSegments[i],long+1);if(error)return"multiModalSegments."+error}}return null};StepsOverview.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLeg.StepsOverview)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLeg.StepsOverview;if(object.multiModalSegments){if(!Array.isArray(object.multiModalSegments))throw TypeError(".google.maps.routing.v2.RouteLeg.StepsOverview.multiModalSegments: array expected");message.multiModalSegments=[];for(var i=0;i<object.multiModalSegments.length;++i){if(typeof object.multiModalSegments[i]!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.StepsOverview.multiModalSegments: object expected");message.multiModalSegments[i]=$root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment.fromObject(object.multiModalSegments[i],long+1)}}return message};StepsOverview.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.multiModalSegments=[];if(message.multiModalSegments&&message.multiModalSegments.length){object.multiModalSegments=[];for(var j=0;j<message.multiModalSegments.length;++j)object.multiModalSegments[j]=$root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment.toObject(message.multiModalSegments[j],options)}return object};StepsOverview.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};StepsOverview.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLeg.StepsOverview"};StepsOverview.MultiModalSegment=function(){function MultiModalSegment(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}MultiModalSegment.prototype.stepStartIndex=null;MultiModalSegment.prototype.stepEndIndex=null;MultiModalSegment.prototype.navigationInstruction=null;MultiModalSegment.prototype.travelMode=0;var $oneOfFields;Object.defineProperty(MultiModalSegment.prototype,"_stepStartIndex",{get:$util.oneOfGetter($oneOfFields=["stepStartIndex"]),set:$util.oneOfSetter($oneOfFields)});Object.defineProperty(MultiModalSegment.prototype,"_stepEndIndex",{get:$util.oneOfGetter($oneOfFields=["stepEndIndex"]),set:$util.oneOfSetter($oneOfFields)});MultiModalSegment.create=function create(properties){return new MultiModalSegment(properties)};MultiModalSegment.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.stepStartIndex!=null&&Object.hasOwnProperty.call(message,"stepStartIndex"))writer.uint32(8).int32(message.stepStartIndex);if(message.stepEndIndex!=null&&Object.hasOwnProperty.call(message,"stepEndIndex"))writer.uint32(16).int32(message.stepEndIndex);if(message.navigationInstruction!=null&&Object.hasOwnProperty.call(message,"navigationInstruction"))$root.google.maps.routing.v2.NavigationInstruction.encode(message.navigationInstruction,writer.uint32(26).fork()).ldelim();if(message.travelMode!=null&&Object.hasOwnProperty.call(message,"travelMode"))writer.uint32(32).int32(message.travelMode);return writer};MultiModalSegment.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};MultiModalSegment.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.stepStartIndex=reader.int32();break}case 2:{message.stepEndIndex=reader.int32();break}case 3:{message.navigationInstruction=$root.google.maps.routing.v2.NavigationInstruction.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.travelMode=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};MultiModalSegment.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MultiModalSegment.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.stepStartIndex!=null&&message.hasOwnProperty("stepStartIndex")){properties._stepStartIndex=1;if(!$util.isInteger(message.stepStartIndex))return"stepStartIndex: integer expected"}if(message.stepEndIndex!=null&&message.hasOwnProperty("stepEndIndex")){properties._stepEndIndex=1;if(!$util.isInteger(message.stepEndIndex))return"stepEndIndex: integer expected"}if(message.navigationInstruction!=null&&message.hasOwnProperty("navigationInstruction")){var error=$root.google.maps.routing.v2.NavigationInstruction.verify(message.navigationInstruction,long+1);if(error)return"navigationInstruction."+error}if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))switch(message.travelMode){default:return"travelMode: enum value expected";case 0:case 1:case 2:case 3:case 4:case 7:break}return null};MultiModalSegment.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment;if(object.stepStartIndex!=null)message.stepStartIndex=object.stepStartIndex|0;if(object.stepEndIndex!=null)message.stepEndIndex=object.stepEndIndex|0;if(object.navigationInstruction!=null){if(typeof object.navigationInstruction!=="object")throw TypeError(".google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment.navigationInstruction: object expected");message.navigationInstruction=$root.google.maps.routing.v2.NavigationInstruction.fromObject(object.navigationInstruction,long+1)}switch(object.travelMode){default:if(typeof object.travelMode==="number"){message.travelMode=object.travelMode;break}break;case"TRAVEL_MODE_UNSPECIFIED":case 0:message.travelMode=0;break;case"DRIVE":case 1:message.travelMode=1;break;case"BICYCLE":case 2:message.travelMode=2;break;case"WALK":case 3:message.travelMode=3;break;case"TWO_WHEELER":case 4:message.travelMode=4;break;case"TRANSIT":case 7:message.travelMode=7;break}return message};MultiModalSegment.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.navigationInstruction=null;object.travelMode=options.enums===String?"TRAVEL_MODE_UNSPECIFIED":0}if(message.stepStartIndex!=null&&message.hasOwnProperty("stepStartIndex")){object.stepStartIndex=message.stepStartIndex;if(options.oneofs)object._stepStartIndex="stepStartIndex"}if(message.stepEndIndex!=null&&message.hasOwnProperty("stepEndIndex")){object.stepEndIndex=message.stepEndIndex;if(options.oneofs)object._stepEndIndex="stepEndIndex"}if(message.navigationInstruction!=null&&message.hasOwnProperty("navigationInstruction"))object.navigationInstruction=$root.google.maps.routing.v2.NavigationInstruction.toObject(message.navigationInstruction,options);if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))object.travelMode=options.enums===String?$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]===undefined?message.travelMode:$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]:message.travelMode;return object};MultiModalSegment.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};MultiModalSegment.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLeg.StepsOverview.MultiModalSegment"};return MultiModalSegment}();return StepsOverview}();return RouteLeg}();v2.RouteLegStep=function(){function RouteLegStep(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLegStep.prototype.distanceMeters=0;RouteLegStep.prototype.staticDuration=null;RouteLegStep.prototype.polyline=null;RouteLegStep.prototype.startLocation=null;RouteLegStep.prototype.endLocation=null;RouteLegStep.prototype.navigationInstruction=null;RouteLegStep.prototype.travelAdvisory=null;RouteLegStep.prototype.localizedValues=null;RouteLegStep.prototype.transitDetails=null;RouteLegStep.prototype.travelMode=0;RouteLegStep.create=function create(properties){return new RouteLegStep(properties)};RouteLegStep.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.distanceMeters!=null&&Object.hasOwnProperty.call(message,"distanceMeters"))writer.uint32(8).int32(message.distanceMeters);if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.protobuf.Duration.encode(message.staticDuration,writer.uint32(18).fork()).ldelim();if(message.polyline!=null&&Object.hasOwnProperty.call(message,"polyline"))$root.google.maps.routing.v2.Polyline.encode(message.polyline,writer.uint32(26).fork()).ldelim();if(message.startLocation!=null&&Object.hasOwnProperty.call(message,"startLocation"))$root.google.maps.routing.v2.Location.encode(message.startLocation,writer.uint32(34).fork()).ldelim();if(message.endLocation!=null&&Object.hasOwnProperty.call(message,"endLocation"))$root.google.maps.routing.v2.Location.encode(message.endLocation,writer.uint32(42).fork()).ldelim();if(message.navigationInstruction!=null&&Object.hasOwnProperty.call(message,"navigationInstruction"))$root.google.maps.routing.v2.NavigationInstruction.encode(message.navigationInstruction,writer.uint32(50).fork()).ldelim();if(message.travelAdvisory!=null&&Object.hasOwnProperty.call(message,"travelAdvisory"))$root.google.maps.routing.v2.RouteLegStepTravelAdvisory.encode(message.travelAdvisory,writer.uint32(58).fork()).ldelim();if(message.localizedValues!=null&&Object.hasOwnProperty.call(message,"localizedValues"))$root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.encode(message.localizedValues,writer.uint32(66).fork()).ldelim();if(message.transitDetails!=null&&Object.hasOwnProperty.call(message,"transitDetails"))$root.google.maps.routing.v2.RouteLegStepTransitDetails.encode(message.transitDetails,writer.uint32(74).fork()).ldelim();if(message.travelMode!=null&&Object.hasOwnProperty.call(message,"travelMode"))writer.uint32(80).int32(message.travelMode);return writer};RouteLegStep.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLegStep.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegStep;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.distanceMeters=reader.int32();break}case 2:{message.staticDuration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.polyline=$root.google.maps.routing.v2.Polyline.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.startLocation=$root.google.maps.routing.v2.Location.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.endLocation=$root.google.maps.routing.v2.Location.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.navigationInstruction=$root.google.maps.routing.v2.NavigationInstruction.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.travelAdvisory=$root.google.maps.routing.v2.RouteLegStepTravelAdvisory.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.localizedValues=$root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.transitDetails=$root.google.maps.routing.v2.RouteLegStepTransitDetails.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.travelMode=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};RouteLegStep.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLegStep.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))if(!$util.isInteger(message.distanceMeters))return"distanceMeters: integer expected";if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.protobuf.Duration.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}if(message.polyline!=null&&message.hasOwnProperty("polyline")){var error=$root.google.maps.routing.v2.Polyline.verify(message.polyline,long+1);if(error)return"polyline."+error}if(message.startLocation!=null&&message.hasOwnProperty("startLocation")){var error=$root.google.maps.routing.v2.Location.verify(message.startLocation,long+1);if(error)return"startLocation."+error}if(message.endLocation!=null&&message.hasOwnProperty("endLocation")){var error=$root.google.maps.routing.v2.Location.verify(message.endLocation,long+1);if(error)return"endLocation."+error}if(message.navigationInstruction!=null&&message.hasOwnProperty("navigationInstruction")){var error=$root.google.maps.routing.v2.NavigationInstruction.verify(message.navigationInstruction,long+1);if(error)return"navigationInstruction."+error}if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory")){var error=$root.google.maps.routing.v2.RouteLegStepTravelAdvisory.verify(message.travelAdvisory,long+1);if(error)return"travelAdvisory."+error}if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues")){var error=$root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.verify(message.localizedValues,long+1);if(error)return"localizedValues."+error}if(message.transitDetails!=null&&message.hasOwnProperty("transitDetails")){var error=$root.google.maps.routing.v2.RouteLegStepTransitDetails.verify(message.transitDetails,long+1);if(error)return"transitDetails."+error}if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))switch(message.travelMode){default:return"travelMode: enum value expected";case 0:case 1:case 2:case 3:case 4:case 7:break}return null};RouteLegStep.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegStep)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegStep;if(object.distanceMeters!=null)message.distanceMeters=object.distanceMeters|0;if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.staticDuration: object expected");message.staticDuration=$root.google.protobuf.Duration.fromObject(object.staticDuration,long+1)}if(object.polyline!=null){if(typeof object.polyline!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.polyline: object expected");message.polyline=$root.google.maps.routing.v2.Polyline.fromObject(object.polyline,long+1)}if(object.startLocation!=null){if(typeof object.startLocation!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.startLocation: object expected");message.startLocation=$root.google.maps.routing.v2.Location.fromObject(object.startLocation,long+1)}if(object.endLocation!=null){if(typeof object.endLocation!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.endLocation: object expected");message.endLocation=$root.google.maps.routing.v2.Location.fromObject(object.endLocation,long+1)}if(object.navigationInstruction!=null){if(typeof object.navigationInstruction!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.navigationInstruction: object expected");message.navigationInstruction=$root.google.maps.routing.v2.NavigationInstruction.fromObject(object.navigationInstruction,long+1)}if(object.travelAdvisory!=null){if(typeof object.travelAdvisory!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.travelAdvisory: object expected");message.travelAdvisory=$root.google.maps.routing.v2.RouteLegStepTravelAdvisory.fromObject(object.travelAdvisory,long+1)}if(object.localizedValues!=null){if(typeof object.localizedValues!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.localizedValues: object expected");message.localizedValues=$root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.fromObject(object.localizedValues,long+1)}if(object.transitDetails!=null){if(typeof object.transitDetails!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.transitDetails: object expected");message.transitDetails=$root.google.maps.routing.v2.RouteLegStepTransitDetails.fromObject(object.transitDetails,long+1)}switch(object.travelMode){default:if(typeof object.travelMode==="number"){message.travelMode=object.travelMode;break}break;case"TRAVEL_MODE_UNSPECIFIED":case 0:message.travelMode=0;break;case"DRIVE":case 1:message.travelMode=1;break;case"BICYCLE":case 2:message.travelMode=2;break;case"WALK":case 3:message.travelMode=3;break;case"TWO_WHEELER":case 4:message.travelMode=4;break;case"TRANSIT":case 7:message.travelMode=7;break}return message};RouteLegStep.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.distanceMeters=0;object.staticDuration=null;object.polyline=null;object.startLocation=null;object.endLocation=null;object.navigationInstruction=null;object.travelAdvisory=null;object.localizedValues=null;object.transitDetails=null;object.travelMode=options.enums===String?"TRAVEL_MODE_UNSPECIFIED":0}if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))object.distanceMeters=message.distanceMeters;if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.protobuf.Duration.toObject(message.staticDuration,options);if(message.polyline!=null&&message.hasOwnProperty("polyline"))object.polyline=$root.google.maps.routing.v2.Polyline.toObject(message.polyline,options);if(message.startLocation!=null&&message.hasOwnProperty("startLocation"))object.startLocation=$root.google.maps.routing.v2.Location.toObject(message.startLocation,options);if(message.endLocation!=null&&message.hasOwnProperty("endLocation"))object.endLocation=$root.google.maps.routing.v2.Location.toObject(message.endLocation,options);if(message.navigationInstruction!=null&&message.hasOwnProperty("navigationInstruction"))object.navigationInstruction=$root.google.maps.routing.v2.NavigationInstruction.toObject(message.navigationInstruction,options);if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory"))object.travelAdvisory=$root.google.maps.routing.v2.RouteLegStepTravelAdvisory.toObject(message.travelAdvisory,options);if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues"))object.localizedValues=$root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.toObject(message.localizedValues,options);if(message.transitDetails!=null&&message.hasOwnProperty("transitDetails"))object.transitDetails=$root.google.maps.routing.v2.RouteLegStepTransitDetails.toObject(message.transitDetails,options);if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))object.travelMode=options.enums===String?$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]===undefined?message.travelMode:$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]:message.travelMode;return object};RouteLegStep.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLegStep.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegStep"};RouteLegStep.RouteLegStepLocalizedValues=function(){function RouteLegStepLocalizedValues(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLegStepLocalizedValues.prototype.distance=null;RouteLegStepLocalizedValues.prototype.staticDuration=null;RouteLegStepLocalizedValues.create=function create(properties){return new RouteLegStepLocalizedValues(properties)};RouteLegStepLocalizedValues.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.distance!=null&&Object.hasOwnProperty.call(message,"distance"))$root.google.type.LocalizedText.encode(message.distance,writer.uint32(10).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.type.LocalizedText.encode(message.staticDuration,writer.uint32(26).fork()).ldelim();return writer};RouteLegStepLocalizedValues.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLegStepLocalizedValues.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.distance=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.staticDuration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteLegStepLocalizedValues.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLegStepLocalizedValues.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.distance!=null&&message.hasOwnProperty("distance")){var error=$root.google.type.LocalizedText.verify(message.distance,long+1);if(error)return"distance."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.type.LocalizedText.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}return null};RouteLegStepLocalizedValues.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues;if(object.distance!=null){if(typeof object.distance!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.distance: object expected");message.distance=$root.google.type.LocalizedText.fromObject(object.distance,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues.staticDuration: object expected");message.staticDuration=$root.google.type.LocalizedText.fromObject(object.staticDuration,long+1)}return message};RouteLegStepLocalizedValues.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.distance=null;object.staticDuration=null}if(message.distance!=null&&message.hasOwnProperty("distance"))object.distance=$root.google.type.LocalizedText.toObject(message.distance,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.type.LocalizedText.toObject(message.staticDuration,options);return object};RouteLegStepLocalizedValues.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLegStepLocalizedValues.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegStep.RouteLegStepLocalizedValues"};return RouteLegStepLocalizedValues}();return RouteLegStep}();v2.RouteLegStepTransitDetails=function(){function RouteLegStepTransitDetails(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteLegStepTransitDetails.prototype.stopDetails=null;RouteLegStepTransitDetails.prototype.localizedValues=null;RouteLegStepTransitDetails.prototype.headsign="";RouteLegStepTransitDetails.prototype.headway=null;RouteLegStepTransitDetails.prototype.transitLine=null;RouteLegStepTransitDetails.prototype.stopCount=0;RouteLegStepTransitDetails.prototype.tripShortText="";RouteLegStepTransitDetails.create=function create(properties){return new RouteLegStepTransitDetails(properties)};RouteLegStepTransitDetails.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.stopDetails!=null&&Object.hasOwnProperty.call(message,"stopDetails"))$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.encode(message.stopDetails,writer.uint32(10).fork()).ldelim();if(message.localizedValues!=null&&Object.hasOwnProperty.call(message,"localizedValues"))$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.encode(message.localizedValues,writer.uint32(18).fork()).ldelim();if(message.headsign!=null&&Object.hasOwnProperty.call(message,"headsign"))writer.uint32(26).string(message.headsign);if(message.headway!=null&&Object.hasOwnProperty.call(message,"headway"))$root.google.protobuf.Duration.encode(message.headway,writer.uint32(34).fork()).ldelim();if(message.transitLine!=null&&Object.hasOwnProperty.call(message,"transitLine"))$root.google.maps.routing.v2.TransitLine.encode(message.transitLine,writer.uint32(42).fork()).ldelim();if(message.stopCount!=null&&Object.hasOwnProperty.call(message,"stopCount"))writer.uint32(48).int32(message.stopCount);if(message.tripShortText!=null&&Object.hasOwnProperty.call(message,"tripShortText"))writer.uint32(58).string(message.tripShortText);return writer};RouteLegStepTransitDetails.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteLegStepTransitDetails.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegStepTransitDetails;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.stopDetails=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.localizedValues=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.headsign=reader.string();break}case 4:{message.headway=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.transitLine=$root.google.maps.routing.v2.TransitLine.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.stopCount=reader.int32();break}case 7:{message.tripShortText=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};RouteLegStepTransitDetails.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteLegStepTransitDetails.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.stopDetails!=null&&message.hasOwnProperty("stopDetails")){var error=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.verify(message.stopDetails,long+1);if(error)return"stopDetails."+error}if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues")){var error=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.verify(message.localizedValues,long+1);if(error)return"localizedValues."+error}if(message.headsign!=null&&message.hasOwnProperty("headsign"))if(!$util.isString(message.headsign))return"headsign: string expected";if(message.headway!=null&&message.hasOwnProperty("headway")){var error=$root.google.protobuf.Duration.verify(message.headway,long+1);if(error)return"headway."+error}if(message.transitLine!=null&&message.hasOwnProperty("transitLine")){var error=$root.google.maps.routing.v2.TransitLine.verify(message.transitLine,long+1);if(error)return"transitLine."+error}if(message.stopCount!=null&&message.hasOwnProperty("stopCount"))if(!$util.isInteger(message.stopCount))return"stopCount: integer expected";if(message.tripShortText!=null&&message.hasOwnProperty("tripShortText"))if(!$util.isString(message.tripShortText))return"tripShortText: string expected";return null};RouteLegStepTransitDetails.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegStepTransitDetails)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegStepTransitDetails;if(object.stopDetails!=null){if(typeof object.stopDetails!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.stopDetails: object expected");message.stopDetails=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.fromObject(object.stopDetails,long+1)}if(object.localizedValues!=null){if(typeof object.localizedValues!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.localizedValues: object expected");message.localizedValues=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.fromObject(object.localizedValues,long+1)}if(object.headsign!=null)message.headsign=String(object.headsign);if(object.headway!=null){if(typeof object.headway!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.headway: object expected");message.headway=$root.google.protobuf.Duration.fromObject(object.headway,long+1)}if(object.transitLine!=null){if(typeof object.transitLine!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.transitLine: object expected");message.transitLine=$root.google.maps.routing.v2.TransitLine.fromObject(object.transitLine,long+1)}if(object.stopCount!=null)message.stopCount=object.stopCount|0;if(object.tripShortText!=null)message.tripShortText=String(object.tripShortText);return message};RouteLegStepTransitDetails.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.stopDetails=null;object.localizedValues=null;object.headsign="";object.headway=null;object.transitLine=null;object.stopCount=0;object.tripShortText=""}if(message.stopDetails!=null&&message.hasOwnProperty("stopDetails"))object.stopDetails=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.toObject(message.stopDetails,options);if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues"))object.localizedValues=$root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.toObject(message.localizedValues,options);if(message.headsign!=null&&message.hasOwnProperty("headsign"))object.headsign=message.headsign;if(message.headway!=null&&message.hasOwnProperty("headway"))object.headway=$root.google.protobuf.Duration.toObject(message.headway,options);if(message.transitLine!=null&&message.hasOwnProperty("transitLine"))object.transitLine=$root.google.maps.routing.v2.TransitLine.toObject(message.transitLine,options);if(message.stopCount!=null&&message.hasOwnProperty("stopCount"))object.stopCount=message.stopCount;if(message.tripShortText!=null&&message.hasOwnProperty("tripShortText"))object.tripShortText=message.tripShortText;return object};RouteLegStepTransitDetails.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteLegStepTransitDetails.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegStepTransitDetails"};RouteLegStepTransitDetails.TransitStopDetails=function(){function TransitStopDetails(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitStopDetails.prototype.arrivalStop=null;TransitStopDetails.prototype.arrivalTime=null;TransitStopDetails.prototype.departureStop=null;TransitStopDetails.prototype.departureTime=null;TransitStopDetails.create=function create(properties){return new TransitStopDetails(properties)};TransitStopDetails.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.arrivalStop!=null&&Object.hasOwnProperty.call(message,"arrivalStop"))$root.google.maps.routing.v2.TransitStop.encode(message.arrivalStop,writer.uint32(10).fork()).ldelim();if(message.arrivalTime!=null&&Object.hasOwnProperty.call(message,"arrivalTime"))$root.google.protobuf.Timestamp.encode(message.arrivalTime,writer.uint32(18).fork()).ldelim();if(message.departureStop!=null&&Object.hasOwnProperty.call(message,"departureStop"))$root.google.maps.routing.v2.TransitStop.encode(message.departureStop,writer.uint32(26).fork()).ldelim();if(message.departureTime!=null&&Object.hasOwnProperty.call(message,"departureTime"))$root.google.protobuf.Timestamp.encode(message.departureTime,writer.uint32(34).fork()).ldelim();return writer};TransitStopDetails.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitStopDetails.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.arrivalStop=$root.google.maps.routing.v2.TransitStop.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.arrivalTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.departureStop=$root.google.maps.routing.v2.TransitStop.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.departureTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TransitStopDetails.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitStopDetails.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.arrivalStop!=null&&message.hasOwnProperty("arrivalStop")){var error=$root.google.maps.routing.v2.TransitStop.verify(message.arrivalStop,long+1);if(error)return"arrivalStop."+error}if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime")){var error=$root.google.protobuf.Timestamp.verify(message.arrivalTime,long+1);if(error)return"arrivalTime."+error}if(message.departureStop!=null&&message.hasOwnProperty("departureStop")){var error=$root.google.maps.routing.v2.TransitStop.verify(message.departureStop,long+1);if(error)return"departureStop."+error}if(message.departureTime!=null&&message.hasOwnProperty("departureTime")){var error=$root.google.protobuf.Timestamp.verify(message.departureTime,long+1);if(error)return"departureTime."+error}return null};TransitStopDetails.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails;if(object.arrivalStop!=null){if(typeof object.arrivalStop!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.arrivalStop: object expected");message.arrivalStop=$root.google.maps.routing.v2.TransitStop.fromObject(object.arrivalStop,long+1)}if(object.arrivalTime!=null){if(typeof object.arrivalTime!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.arrivalTime: object expected");message.arrivalTime=$root.google.protobuf.Timestamp.fromObject(object.arrivalTime,long+1)}if(object.departureStop!=null){if(typeof object.departureStop!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.departureStop: object expected");message.departureStop=$root.google.maps.routing.v2.TransitStop.fromObject(object.departureStop,long+1)}if(object.departureTime!=null){if(typeof object.departureTime!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails.departureTime: object expected");message.departureTime=$root.google.protobuf.Timestamp.fromObject(object.departureTime,long+1)}return message};TransitStopDetails.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.arrivalStop=null;object.arrivalTime=null;object.departureStop=null;object.departureTime=null}if(message.arrivalStop!=null&&message.hasOwnProperty("arrivalStop"))object.arrivalStop=$root.google.maps.routing.v2.TransitStop.toObject(message.arrivalStop,options);if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime"))object.arrivalTime=$root.google.protobuf.Timestamp.toObject(message.arrivalTime,options);if(message.departureStop!=null&&message.hasOwnProperty("departureStop"))object.departureStop=$root.google.maps.routing.v2.TransitStop.toObject(message.departureStop,options);if(message.departureTime!=null&&message.hasOwnProperty("departureTime"))object.departureTime=$root.google.protobuf.Timestamp.toObject(message.departureTime,options);return object};TransitStopDetails.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitStopDetails.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegStepTransitDetails.TransitStopDetails"};return TransitStopDetails}();RouteLegStepTransitDetails.TransitDetailsLocalizedValues=function(){function TransitDetailsLocalizedValues(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitDetailsLocalizedValues.prototype.arrivalTime=null;TransitDetailsLocalizedValues.prototype.departureTime=null;TransitDetailsLocalizedValues.create=function create(properties){return new TransitDetailsLocalizedValues(properties)};TransitDetailsLocalizedValues.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.arrivalTime!=null&&Object.hasOwnProperty.call(message,"arrivalTime"))$root.google.maps.routing.v2.LocalizedTime.encode(message.arrivalTime,writer.uint32(10).fork()).ldelim();if(message.departureTime!=null&&Object.hasOwnProperty.call(message,"departureTime"))$root.google.maps.routing.v2.LocalizedTime.encode(message.departureTime,writer.uint32(18).fork()).ldelim();return writer};TransitDetailsLocalizedValues.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitDetailsLocalizedValues.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.arrivalTime=$root.google.maps.routing.v2.LocalizedTime.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.departureTime=$root.google.maps.routing.v2.LocalizedTime.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TransitDetailsLocalizedValues.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitDetailsLocalizedValues.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime")){var error=$root.google.maps.routing.v2.LocalizedTime.verify(message.arrivalTime,long+1);if(error)return"arrivalTime."+error}if(message.departureTime!=null&&message.hasOwnProperty("departureTime")){var error=$root.google.maps.routing.v2.LocalizedTime.verify(message.departureTime,long+1);if(error)return"departureTime."+error}return null};TransitDetailsLocalizedValues.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues;if(object.arrivalTime!=null){if(typeof object.arrivalTime!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.arrivalTime: object expected");message.arrivalTime=$root.google.maps.routing.v2.LocalizedTime.fromObject(object.arrivalTime,long+1)}if(object.departureTime!=null){if(typeof object.departureTime!=="object")throw TypeError(".google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues.departureTime: object expected");message.departureTime=$root.google.maps.routing.v2.LocalizedTime.fromObject(object.departureTime,long+1)}return message};TransitDetailsLocalizedValues.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.arrivalTime=null;object.departureTime=null}if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime"))object.arrivalTime=$root.google.maps.routing.v2.LocalizedTime.toObject(message.arrivalTime,options);if(message.departureTime!=null&&message.hasOwnProperty("departureTime"))object.departureTime=$root.google.maps.routing.v2.LocalizedTime.toObject(message.departureTime,options);return object};TransitDetailsLocalizedValues.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitDetailsLocalizedValues.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteLegStepTransitDetails.TransitDetailsLocalizedValues"};return TransitDetailsLocalizedValues}();return RouteLegStepTransitDetails}();v2.RouteLabel=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ROUTE_LABEL_UNSPECIFIED"]=0;values[valuesById[1]="DEFAULT_ROUTE"]=1;values[valuesById[2]="DEFAULT_ROUTE_ALTERNATE"]=2;values[valuesById[3]="FUEL_EFFICIENT"]=3;values[valuesById[4]="SHORTER_DISTANCE"]=4;return values}();v2.RouteTravelMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TRAVEL_MODE_UNSPECIFIED"]=0;values[valuesById[1]="DRIVE"]=1;values[valuesById[2]="BICYCLE"]=2;values[valuesById[3]="WALK"]=3;values[valuesById[4]="TWO_WHEELER"]=4;values[valuesById[7]="TRANSIT"]=7;return values}();v2.SpeedReadingInterval=function(){function SpeedReadingInterval(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}SpeedReadingInterval.prototype.startPolylinePointIndex=null;SpeedReadingInterval.prototype.endPolylinePointIndex=null;SpeedReadingInterval.prototype.speed=null;var $oneOfFields;Object.defineProperty(SpeedReadingInterval.prototype,"_startPolylinePointIndex",{get:$util.oneOfGetter($oneOfFields=["startPolylinePointIndex"]),set:$util.oneOfSetter($oneOfFields)});Object.defineProperty(SpeedReadingInterval.prototype,"_endPolylinePointIndex",{get:$util.oneOfGetter($oneOfFields=["endPolylinePointIndex"]),set:$util.oneOfSetter($oneOfFields)});Object.defineProperty(SpeedReadingInterval.prototype,"speedType",{get:$util.oneOfGetter($oneOfFields=["speed"]),set:$util.oneOfSetter($oneOfFields)});SpeedReadingInterval.create=function create(properties){return new SpeedReadingInterval(properties)};SpeedReadingInterval.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.startPolylinePointIndex!=null&&Object.hasOwnProperty.call(message,"startPolylinePointIndex"))writer.uint32(8).int32(message.startPolylinePointIndex);if(message.endPolylinePointIndex!=null&&Object.hasOwnProperty.call(message,"endPolylinePointIndex"))writer.uint32(16).int32(message.endPolylinePointIndex);if(message.speed!=null&&Object.hasOwnProperty.call(message,"speed"))writer.uint32(24).int32(message.speed);return writer};SpeedReadingInterval.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};SpeedReadingInterval.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.SpeedReadingInterval;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.startPolylinePointIndex=reader.int32();break}case 2:{message.endPolylinePointIndex=reader.int32();break}case 3:{message.speed=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};SpeedReadingInterval.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SpeedReadingInterval.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.startPolylinePointIndex!=null&&message.hasOwnProperty("startPolylinePointIndex")){properties._startPolylinePointIndex=1;if(!$util.isInteger(message.startPolylinePointIndex))return"startPolylinePointIndex: integer expected"}if(message.endPolylinePointIndex!=null&&message.hasOwnProperty("endPolylinePointIndex")){properties._endPolylinePointIndex=1;if(!$util.isInteger(message.endPolylinePointIndex))return"endPolylinePointIndex: integer expected"}if(message.speed!=null&&message.hasOwnProperty("speed")){properties.speedType=1;switch(message.speed){default:return"speed: enum value expected";case 0:case 1:case 2:case 3:break}}return null};SpeedReadingInterval.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.SpeedReadingInterval)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.SpeedReadingInterval;if(object.startPolylinePointIndex!=null)message.startPolylinePointIndex=object.startPolylinePointIndex|0;if(object.endPolylinePointIndex!=null)message.endPolylinePointIndex=object.endPolylinePointIndex|0;switch(object.speed){default:if(typeof object.speed==="number"){message.speed=object.speed;break}break;case"SPEED_UNSPECIFIED":case 0:message.speed=0;break;case"NORMAL":case 1:message.speed=1;break;case"SLOW":case 2:message.speed=2;break;case"TRAFFIC_JAM":case 3:message.speed=3;break}return message};SpeedReadingInterval.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.startPolylinePointIndex!=null&&message.hasOwnProperty("startPolylinePointIndex")){object.startPolylinePointIndex=message.startPolylinePointIndex;if(options.oneofs)object._startPolylinePointIndex="startPolylinePointIndex"}if(message.endPolylinePointIndex!=null&&message.hasOwnProperty("endPolylinePointIndex")){object.endPolylinePointIndex=message.endPolylinePointIndex;if(options.oneofs)object._endPolylinePointIndex="endPolylinePointIndex"}if(message.speed!=null&&message.hasOwnProperty("speed")){object.speed=options.enums===String?$root.google.maps.routing.v2.SpeedReadingInterval.Speed[message.speed]===undefined?message.speed:$root.google.maps.routing.v2.SpeedReadingInterval.Speed[message.speed]:message.speed;if(options.oneofs)object.speedType="speed"}return object};SpeedReadingInterval.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SpeedReadingInterval.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.SpeedReadingInterval"};SpeedReadingInterval.Speed=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="SPEED_UNSPECIFIED"]=0;values[valuesById[1]="NORMAL"]=1;values[valuesById[2]="SLOW"]=2;values[valuesById[3]="TRAFFIC_JAM"]=3;return values}();return SpeedReadingInterval}();v2.TollInfo=function(){function TollInfo(properties){this.estimatedPrice=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TollInfo.prototype.estimatedPrice=$util.emptyArray;TollInfo.create=function create(properties){return new TollInfo(properties)};TollInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.estimatedPrice!=null&&message.estimatedPrice.length)for(var i=0;i<message.estimatedPrice.length;++i)$root.google.type.Money.encode(message.estimatedPrice[i],writer.uint32(10).fork()).ldelim();return writer};TollInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TollInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.TollInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.estimatedPrice&&message.estimatedPrice.length))message.estimatedPrice=[];message.estimatedPrice.push($root.google.type.Money.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};TollInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TollInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.estimatedPrice!=null&&message.hasOwnProperty("estimatedPrice")){if(!Array.isArray(message.estimatedPrice))return"estimatedPrice: array expected";for(var i=0;i<message.estimatedPrice.length;++i){var error=$root.google.type.Money.verify(message.estimatedPrice[i],long+1);if(error)return"estimatedPrice."+error}}return null};TollInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.TollInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.TollInfo;if(object.estimatedPrice){if(!Array.isArray(object.estimatedPrice))throw TypeError(".google.maps.routing.v2.TollInfo.estimatedPrice: array expected");message.estimatedPrice=[];for(var i=0;i<object.estimatedPrice.length;++i){if(typeof object.estimatedPrice[i]!=="object")throw TypeError(".google.maps.routing.v2.TollInfo.estimatedPrice: object expected");message.estimatedPrice[i]=$root.google.type.Money.fromObject(object.estimatedPrice[i],long+1)}}return message};TollInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.estimatedPrice=[];if(message.estimatedPrice&&message.estimatedPrice.length){object.estimatedPrice=[];for(var j=0;j<message.estimatedPrice.length;++j)object.estimatedPrice[j]=$root.google.type.Money.toObject(message.estimatedPrice[j],options)}return object};TollInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TollInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.TollInfo"};return TollInfo}();v2.TransitAgency=function(){function TransitAgency(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitAgency.prototype.name="";TransitAgency.prototype.phoneNumber="";TransitAgency.prototype.uri="";TransitAgency.create=function create(properties){return new TransitAgency(properties)};TransitAgency.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.phoneNumber!=null&&Object.hasOwnProperty.call(message,"phoneNumber"))writer.uint32(18).string(message.phoneNumber);if(message.uri!=null&&Object.hasOwnProperty.call(message,"uri"))writer.uint32(26).string(message.uri);return writer};TransitAgency.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitAgency.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.TransitAgency;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{message.phoneNumber=reader.string();break}case 3:{message.uri=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};TransitAgency.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitAgency.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.phoneNumber!=null&&message.hasOwnProperty("phoneNumber"))if(!$util.isString(message.phoneNumber))return"phoneNumber: string expected";if(message.uri!=null&&message.hasOwnProperty("uri"))if(!$util.isString(message.uri))return"uri: string expected";return null};TransitAgency.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.TransitAgency)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.TransitAgency;if(object.name!=null)message.name=String(object.name);if(object.phoneNumber!=null)message.phoneNumber=String(object.phoneNumber);if(object.uri!=null)message.uri=String(object.uri);return message};TransitAgency.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.phoneNumber="";object.uri=""}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.phoneNumber!=null&&message.hasOwnProperty("phoneNumber"))object.phoneNumber=message.phoneNumber;if(message.uri!=null&&message.hasOwnProperty("uri"))object.uri=message.uri;return object};TransitAgency.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitAgency.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.TransitAgency"};return TransitAgency}();v2.TransitLine=function(){function TransitLine(properties){this.agencies=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitLine.prototype.agencies=$util.emptyArray;TransitLine.prototype.name="";TransitLine.prototype.uri="";TransitLine.prototype.color="";TransitLine.prototype.iconUri="";TransitLine.prototype.nameShort="";TransitLine.prototype.textColor="";TransitLine.prototype.vehicle=null;TransitLine.create=function create(properties){return new TransitLine(properties)};TransitLine.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.agencies!=null&&message.agencies.length)for(var i=0;i<message.agencies.length;++i)$root.google.maps.routing.v2.TransitAgency.encode(message.agencies[i],writer.uint32(10).fork()).ldelim();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(18).string(message.name);if(message.uri!=null&&Object.hasOwnProperty.call(message,"uri"))writer.uint32(26).string(message.uri);if(message.color!=null&&Object.hasOwnProperty.call(message,"color"))writer.uint32(34).string(message.color);if(message.iconUri!=null&&Object.hasOwnProperty.call(message,"iconUri"))writer.uint32(42).string(message.iconUri);if(message.nameShort!=null&&Object.hasOwnProperty.call(message,"nameShort"))writer.uint32(50).string(message.nameShort);if(message.textColor!=null&&Object.hasOwnProperty.call(message,"textColor"))writer.uint32(58).string(message.textColor);if(message.vehicle!=null&&Object.hasOwnProperty.call(message,"vehicle"))$root.google.maps.routing.v2.TransitVehicle.encode(message.vehicle,writer.uint32(66).fork()).ldelim();return writer};TransitLine.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitLine.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.TransitLine;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.agencies&&message.agencies.length))message.agencies=[];message.agencies.push($root.google.maps.routing.v2.TransitAgency.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.name=reader.string();break}case 3:{message.uri=reader.string();break}case 4:{message.color=reader.string();break}case 5:{message.iconUri=reader.string();break}case 6:{message.nameShort=reader.string();break}case 7:{message.textColor=reader.string();break}case 8:{message.vehicle=$root.google.maps.routing.v2.TransitVehicle.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TransitLine.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitLine.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.agencies!=null&&message.hasOwnProperty("agencies")){if(!Array.isArray(message.agencies))return"agencies: array expected";for(var i=0;i<message.agencies.length;++i){var error=$root.google.maps.routing.v2.TransitAgency.verify(message.agencies[i],long+1);if(error)return"agencies."+error}}if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.uri!=null&&message.hasOwnProperty("uri"))if(!$util.isString(message.uri))return"uri: string expected";if(message.color!=null&&message.hasOwnProperty("color"))if(!$util.isString(message.color))return"color: string expected";if(message.iconUri!=null&&message.hasOwnProperty("iconUri"))if(!$util.isString(message.iconUri))return"iconUri: string expected";if(message.nameShort!=null&&message.hasOwnProperty("nameShort"))if(!$util.isString(message.nameShort))return"nameShort: string expected";if(message.textColor!=null&&message.hasOwnProperty("textColor"))if(!$util.isString(message.textColor))return"textColor: string expected";if(message.vehicle!=null&&message.hasOwnProperty("vehicle")){var error=$root.google.maps.routing.v2.TransitVehicle.verify(message.vehicle,long+1);if(error)return"vehicle."+error}return null};TransitLine.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.TransitLine)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.TransitLine;if(object.agencies){if(!Array.isArray(object.agencies))throw TypeError(".google.maps.routing.v2.TransitLine.agencies: array expected");message.agencies=[];for(var i=0;i<object.agencies.length;++i){if(typeof object.agencies[i]!=="object")throw TypeError(".google.maps.routing.v2.TransitLine.agencies: object expected");message.agencies[i]=$root.google.maps.routing.v2.TransitAgency.fromObject(object.agencies[i],long+1)}}if(object.name!=null)message.name=String(object.name);if(object.uri!=null)message.uri=String(object.uri);if(object.color!=null)message.color=String(object.color);if(object.iconUri!=null)message.iconUri=String(object.iconUri);if(object.nameShort!=null)message.nameShort=String(object.nameShort);if(object.textColor!=null)message.textColor=String(object.textColor);if(object.vehicle!=null){if(typeof object.vehicle!=="object")throw TypeError(".google.maps.routing.v2.TransitLine.vehicle: object expected");message.vehicle=$root.google.maps.routing.v2.TransitVehicle.fromObject(object.vehicle,long+1)}return message};TransitLine.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.agencies=[];if(options.defaults){object.name="";object.uri="";object.color="";object.iconUri="";object.nameShort="";object.textColor="";object.vehicle=null}if(message.agencies&&message.agencies.length){object.agencies=[];for(var j=0;j<message.agencies.length;++j)object.agencies[j]=$root.google.maps.routing.v2.TransitAgency.toObject(message.agencies[j],options)}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.uri!=null&&message.hasOwnProperty("uri"))object.uri=message.uri;if(message.color!=null&&message.hasOwnProperty("color"))object.color=message.color;if(message.iconUri!=null&&message.hasOwnProperty("iconUri"))object.iconUri=message.iconUri;if(message.nameShort!=null&&message.hasOwnProperty("nameShort"))object.nameShort=message.nameShort;if(message.textColor!=null&&message.hasOwnProperty("textColor"))object.textColor=message.textColor;if(message.vehicle!=null&&message.hasOwnProperty("vehicle"))object.vehicle=$root.google.maps.routing.v2.TransitVehicle.toObject(message.vehicle,options);return object};TransitLine.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitLine.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.TransitLine"};return TransitLine}();v2.TransitStop=function(){function TransitStop(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitStop.prototype.name="";TransitStop.prototype.location=null;TransitStop.create=function create(properties){return new TransitStop(properties)};TransitStop.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))writer.uint32(10).string(message.name);if(message.location!=null&&Object.hasOwnProperty.call(message,"location"))$root.google.maps.routing.v2.Location.encode(message.location,writer.uint32(18).fork()).ldelim();return writer};TransitStop.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitStop.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.TransitStop;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=reader.string();break}case 2:{message.location=$root.google.maps.routing.v2.Location.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TransitStop.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitStop.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.location!=null&&message.hasOwnProperty("location")){var error=$root.google.maps.routing.v2.Location.verify(message.location,long+1);if(error)return"location."+error}return null};TransitStop.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.TransitStop)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.TransitStop;if(object.name!=null)message.name=String(object.name);if(object.location!=null){if(typeof object.location!=="object")throw TypeError(".google.maps.routing.v2.TransitStop.location: object expected");message.location=$root.google.maps.routing.v2.Location.fromObject(object.location,long+1)}return message};TransitStop.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.location=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.location!=null&&message.hasOwnProperty("location"))object.location=$root.google.maps.routing.v2.Location.toObject(message.location,options);return object};TransitStop.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitStop.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.TransitStop"};return TransitStop}();v2.TransitVehicle=function(){function TransitVehicle(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitVehicle.prototype.name=null;TransitVehicle.prototype.type=0;TransitVehicle.prototype.iconUri="";TransitVehicle.prototype.localIconUri="";TransitVehicle.create=function create(properties){return new TransitVehicle(properties)};TransitVehicle.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.name!=null&&Object.hasOwnProperty.call(message,"name"))$root.google.type.LocalizedText.encode(message.name,writer.uint32(10).fork()).ldelim();if(message.type!=null&&Object.hasOwnProperty.call(message,"type"))writer.uint32(16).int32(message.type);if(message.iconUri!=null&&Object.hasOwnProperty.call(message,"iconUri"))writer.uint32(26).string(message.iconUri);if(message.localIconUri!=null&&Object.hasOwnProperty.call(message,"localIconUri"))writer.uint32(34).string(message.localIconUri);return writer};TransitVehicle.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitVehicle.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.TransitVehicle;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.name=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.type=reader.int32();break}case 3:{message.iconUri=reader.string();break}case 4:{message.localIconUri=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};TransitVehicle.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitVehicle.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name")){var error=$root.google.type.LocalizedText.verify(message.name,long+1);if(error)return"name."+error}if(message.type!=null&&message.hasOwnProperty("type"))switch(message.type){default:return"type: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:break}if(message.iconUri!=null&&message.hasOwnProperty("iconUri"))if(!$util.isString(message.iconUri))return"iconUri: string expected";if(message.localIconUri!=null&&message.hasOwnProperty("localIconUri"))if(!$util.isString(message.localIconUri))return"localIconUri: string expected";return null};TransitVehicle.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.TransitVehicle)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.TransitVehicle;if(object.name!=null){if(typeof object.name!=="object")throw TypeError(".google.maps.routing.v2.TransitVehicle.name: object expected");message.name=$root.google.type.LocalizedText.fromObject(object.name,long+1)}switch(object.type){default:if(typeof object.type==="number"){message.type=object.type;break}break;case"TRANSIT_VEHICLE_TYPE_UNSPECIFIED":case 0:message.type=0;break;case"BUS":case 1:message.type=1;break;case"CABLE_CAR":case 2:message.type=2;break;case"COMMUTER_TRAIN":case 3:message.type=3;break;case"FERRY":case 4:message.type=4;break;case"FUNICULAR":case 5:message.type=5;break;case"GONDOLA_LIFT":case 6:message.type=6;break;case"HEAVY_RAIL":case 7:message.type=7;break;case"HIGH_SPEED_TRAIN":case 8:message.type=8;break;case"INTERCITY_BUS":case 9:message.type=9;break;case"LONG_DISTANCE_TRAIN":case 10:message.type=10;break;case"METRO_RAIL":case 11:message.type=11;break;case"MONORAIL":case 12:message.type=12;break;case"OTHER":case 13:message.type=13;break;case"RAIL":case 14:message.type=14;break;case"SHARE_TAXI":case 15:message.type=15;break;case"SUBWAY":case 16:message.type=16;break;case"TRAM":case 17:message.type=17;break;case"TROLLEYBUS":case 18:message.type=18;break}if(object.iconUri!=null)message.iconUri=String(object.iconUri);if(object.localIconUri!=null)message.localIconUri=String(object.localIconUri);return message};TransitVehicle.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name=null;object.type=options.enums===String?"TRANSIT_VEHICLE_TYPE_UNSPECIFIED":0;object.iconUri="";object.localIconUri=""}if(message.name!=null&&message.hasOwnProperty("name"))object.name=$root.google.type.LocalizedText.toObject(message.name,options);if(message.type!=null&&message.hasOwnProperty("type"))object.type=options.enums===String?$root.google.maps.routing.v2.TransitVehicle.TransitVehicleType[message.type]===undefined?message.type:$root.google.maps.routing.v2.TransitVehicle.TransitVehicleType[message.type]:message.type;if(message.iconUri!=null&&message.hasOwnProperty("iconUri"))object.iconUri=message.iconUri;if(message.localIconUri!=null&&message.hasOwnProperty("localIconUri"))object.localIconUri=message.localIconUri;return object};TransitVehicle.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitVehicle.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.TransitVehicle"};TransitVehicle.TransitVehicleType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TRANSIT_VEHICLE_TYPE_UNSPECIFIED"]=0;values[valuesById[1]="BUS"]=1;values[valuesById[2]="CABLE_CAR"]=2;values[valuesById[3]="COMMUTER_TRAIN"]=3;values[valuesById[4]="FERRY"]=4;values[valuesById[5]="FUNICULAR"]=5;values[valuesById[6]="GONDOLA_LIFT"]=6;values[valuesById[7]="HEAVY_RAIL"]=7;values[valuesById[8]="HIGH_SPEED_TRAIN"]=8;values[valuesById[9]="INTERCITY_BUS"]=9;values[valuesById[10]="LONG_DISTANCE_TRAIN"]=10;values[valuesById[11]="METRO_RAIL"]=11;values[valuesById[12]="MONORAIL"]=12;values[valuesById[13]="OTHER"]=13;values[valuesById[14]="RAIL"]=14;values[valuesById[15]="SHARE_TAXI"]=15;values[valuesById[16]="SUBWAY"]=16;values[valuesById[17]="TRAM"]=17;values[valuesById[18]="TROLLEYBUS"]=18;return values}();return TransitVehicle}();v2.RouteModifiers=function(){function RouteModifiers(properties){this.tollPasses=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteModifiers.prototype.avoidTolls=false;RouteModifiers.prototype.avoidHighways=false;RouteModifiers.prototype.avoidFerries=false;RouteModifiers.prototype.avoidIndoor=false;RouteModifiers.prototype.vehicleInfo=null;RouteModifiers.prototype.tollPasses=$util.emptyArray;RouteModifiers.prototype.avoidTunnels=false;RouteModifiers.create=function create(properties){return new RouteModifiers(properties)};RouteModifiers.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.avoidTolls!=null&&Object.hasOwnProperty.call(message,"avoidTolls"))writer.uint32(8).bool(message.avoidTolls);if(message.avoidHighways!=null&&Object.hasOwnProperty.call(message,"avoidHighways"))writer.uint32(16).bool(message.avoidHighways);if(message.avoidFerries!=null&&Object.hasOwnProperty.call(message,"avoidFerries"))writer.uint32(24).bool(message.avoidFerries);if(message.avoidIndoor!=null&&Object.hasOwnProperty.call(message,"avoidIndoor"))writer.uint32(32).bool(message.avoidIndoor);if(message.vehicleInfo!=null&&Object.hasOwnProperty.call(message,"vehicleInfo"))$root.google.maps.routing.v2.VehicleInfo.encode(message.vehicleInfo,writer.uint32(42).fork()).ldelim();if(message.tollPasses!=null&&message.tollPasses.length){writer.uint32(50).fork();for(var i=0;i<message.tollPasses.length;++i)writer.int32(message.tollPasses[i]);writer.ldelim()}if(message.avoidTunnels!=null&&Object.hasOwnProperty.call(message,"avoidTunnels"))writer.uint32(56).bool(message.avoidTunnels);return writer};RouteModifiers.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteModifiers.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteModifiers;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.avoidTolls=reader.bool();break}case 2:{message.avoidHighways=reader.bool();break}case 3:{message.avoidFerries=reader.bool();break}case 4:{message.avoidIndoor=reader.bool();break}case 5:{message.vehicleInfo=$root.google.maps.routing.v2.VehicleInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{if(!(message.tollPasses&&message.tollPasses.length))message.tollPasses=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.tollPasses.push(reader.int32())}else message.tollPasses.push(reader.int32());break}case 7:{message.avoidTunnels=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};RouteModifiers.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteModifiers.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.avoidTolls!=null&&message.hasOwnProperty("avoidTolls"))if(typeof message.avoidTolls!=="boolean")return"avoidTolls: boolean expected";if(message.avoidHighways!=null&&message.hasOwnProperty("avoidHighways"))if(typeof message.avoidHighways!=="boolean")return"avoidHighways: boolean expected";if(message.avoidFerries!=null&&message.hasOwnProperty("avoidFerries"))if(typeof message.avoidFerries!=="boolean")return"avoidFerries: boolean expected";if(message.avoidIndoor!=null&&message.hasOwnProperty("avoidIndoor"))if(typeof message.avoidIndoor!=="boolean")return"avoidIndoor: boolean expected";if(message.vehicleInfo!=null&&message.hasOwnProperty("vehicleInfo")){var error=$root.google.maps.routing.v2.VehicleInfo.verify(message.vehicleInfo,long+1);if(error)return"vehicleInfo."+error}if(message.tollPasses!=null&&message.hasOwnProperty("tollPasses")){if(!Array.isArray(message.tollPasses))return"tollPasses: array expected";for(var i=0;i<message.tollPasses.length;++i)switch(message.tollPasses[i]){default:return"tollPasses: enum value[] expected";case 0:case 82:case 83:case 2:case 3:case 81:case 7:case 8:case 88:case 9:case 10:case 11:case 84:case 85:case 18:case 19:case 20:case 16:case 78:case 79:case 98:case 99:case 90:case 91:case 93:case 89:case 12:case 13:case 92:case 14:case 21:case 22:case 4:case 86:case 23:case 24:case 25:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 73:case 72:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 6:case 34:case 35:case 36:case 94:case 101:case 37:case 38:case 95:case 39:case 40:case 41:case 42:case 87:case 43:case 80:case 75:case 74:case 76:case 77:case 44:case 45:case 46:case 47:case 97:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 96:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 17:case 1:case 62:case 63:case 100:case 64:break}}if(message.avoidTunnels!=null&&message.hasOwnProperty("avoidTunnels"))if(typeof message.avoidTunnels!=="boolean")return"avoidTunnels: boolean expected";return null};RouteModifiers.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteModifiers)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteModifiers;if(object.avoidTolls!=null)message.avoidTolls=Boolean(object.avoidTolls);if(object.avoidHighways!=null)message.avoidHighways=Boolean(object.avoidHighways);if(object.avoidFerries!=null)message.avoidFerries=Boolean(object.avoidFerries);if(object.avoidIndoor!=null)message.avoidIndoor=Boolean(object.avoidIndoor);if(object.vehicleInfo!=null){if(typeof object.vehicleInfo!=="object")throw TypeError(".google.maps.routing.v2.RouteModifiers.vehicleInfo: object expected");message.vehicleInfo=$root.google.maps.routing.v2.VehicleInfo.fromObject(object.vehicleInfo,long+1)}if(object.tollPasses){if(!Array.isArray(object.tollPasses))throw TypeError(".google.maps.routing.v2.RouteModifiers.tollPasses: array expected");message.tollPasses=[];for(var i=0;i<object.tollPasses.length;++i)switch(object.tollPasses[i]){default:if(typeof object.tollPasses[i]==="number"){message.tollPasses[i]=object.tollPasses[i];break}case"TOLL_PASS_UNSPECIFIED":case 0:message.tollPasses[i]=0;break;case"AU_ETOLL_TAG":case 82:message.tollPasses[i]=82;break;case"AU_EWAY_TAG":case 83:message.tollPasses[i]=83;break;case"AU_LINKT":case 2:message.tollPasses[i]=2;break;case"AR_TELEPASE":case 3:message.tollPasses[i]=3;break;case"BR_AUTO_EXPRESO":case 81:message.tollPasses[i]=81;break;case"BR_CONECTCAR":case 7:message.tollPasses[i]=7;break;case"BR_MOVE_MAIS":case 8:message.tollPasses[i]=8;break;case"BR_PASSA_RAPIDO":case 88:message.tollPasses[i]=88;break;case"BR_SEM_PARAR":case 9:message.tollPasses[i]=9;break;case"BR_TAGGY":case 10:message.tollPasses[i]=10;break;case"BR_VELOE":case 11:message.tollPasses[i]=11;break;case"CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD":case 84:message.tollPasses[i]=84;break;case"CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD":case 85:message.tollPasses[i]=85;break;case"CA_US_BLUE_WATER_EDGE_PASS":case 18:message.tollPasses[i]=18;break;case"CA_US_CONNEXION":case 19:message.tollPasses[i]=19;break;case"CA_US_NEXUS_CARD":case 20:message.tollPasses[i]=20;break;case"ID_E_TOLL":case 16:message.tollPasses[i]=16;break;case"IN_FASTAG":case 78:message.tollPasses[i]=78;break;case"IN_LOCAL_HP_PLATE_EXEMPT":case 79:message.tollPasses[i]=79;break;case"JP_ETC":case 98:message.tollPasses[i]=98;break;case"JP_ETC2":case 99:message.tollPasses[i]=99;break;case"MX_IAVE":case 90:message.tollPasses[i]=90;break;case"MX_PASE":case 91:message.tollPasses[i]=91;break;case"MX_QUICKPASS":case 93:message.tollPasses[i]=93;break;case"MX_SISTEMA_TELEPEAJE_CHIHUAHUA":case 89:message.tollPasses[i]=89;break;case"MX_TAG_IAVE":case 12:message.tollPasses[i]=12;break;case"MX_TAG_TELEVIA":case 13:message.tollPasses[i]=13;break;case"MX_TELEVIA":case 92:message.tollPasses[i]=92;break;case"MX_VIAPASS":case 14:message.tollPasses[i]=14;break;case"US_AL_FREEDOM_PASS":case 21:message.tollPasses[i]=21;break;case"US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS":case 22:message.tollPasses[i]=22;break;case"US_CA_FASTRAK":case 4:message.tollPasses[i]=4;break;case"US_CA_FASTRAK_CAV_STICKER":case 86:message.tollPasses[i]=86;break;case"US_CO_EXPRESSTOLL":case 23:message.tollPasses[i]=23;break;case"US_CO_GO_PASS":case 24:message.tollPasses[i]=24;break;case"US_DE_EZPASSDE":case 25:message.tollPasses[i]=25;break;case"US_FL_BOB_SIKES_TOLL_BRIDGE_PASS":case 65:message.tollPasses[i]=65;break;case"US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD":case 66:message.tollPasses[i]=66;break;case"US_FL_EPASS":case 67:message.tollPasses[i]=67;break;case"US_FL_GIBA_TOLL_PASS":case 68:message.tollPasses[i]=68;break;case"US_FL_LEEWAY":case 69:message.tollPasses[i]=69;break;case"US_FL_SUNPASS":case 70:message.tollPasses[i]=70;break;case"US_FL_SUNPASS_PRO":case 71:message.tollPasses[i]=71;break;case"US_IL_EZPASSIL":case 73:message.tollPasses[i]=73;break;case"US_IL_IPASS":case 72:message.tollPasses[i]=72;break;case"US_IN_EZPASSIN":case 26:message.tollPasses[i]=26;break;case"US_KS_BESTPASS_HORIZON":case 27:message.tollPasses[i]=27;break;case"US_KS_KTAG":case 28:message.tollPasses[i]=28;break;case"US_KS_NATIONALPASS":case 29:message.tollPasses[i]=29;break;case"US_KS_PREPASS_ELITEPASS":case 30:message.tollPasses[i]=30;break;case"US_KY_RIVERLINK":case 31:message.tollPasses[i]=31;break;case"US_LA_GEAUXPASS":case 32:message.tollPasses[i]=32;break;case"US_LA_TOLL_TAG":case 33:message.tollPasses[i]=33;break;case"US_MA_EZPASSMA":case 6:message.tollPasses[i]=6;break;case"US_MD_EZPASSMD":case 34:message.tollPasses[i]=34;break;case"US_ME_EZPASSME":case 35:message.tollPasses[i]=35;break;case"US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD":case 36:message.tollPasses[i]=36;break;case"US_MI_BCPASS":case 94:message.tollPasses[i]=94;break;case"US_MI_BREAKAWAY":case 101:message.tollPasses[i]=101;break;case"US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG":case 37:message.tollPasses[i]=37;break;case"US_MI_IQ_PROX_CARD":case 38:message.tollPasses[i]=38;break;case"US_MI_IQ_TAG":case 95:message.tollPasses[i]=95;break;case"US_MI_MACKINAC_BRIDGE_MAC_PASS":case 39:message.tollPasses[i]=39;break;case"US_MI_NEXPRESS_TOLL":case 40:message.tollPasses[i]=40;break;case"US_MN_EZPASSMN":case 41:message.tollPasses[i]=41;break;case"US_NC_EZPASSNC":case 42:message.tollPasses[i]=42;break;case"US_NC_PEACH_PASS":case 87:message.tollPasses[i]=87;break;case"US_NC_QUICK_PASS":case 43:message.tollPasses[i]=43;break;case"US_NH_EZPASSNH":case 80:message.tollPasses[i]=80;break;case"US_NJ_DOWNBEACH_EXPRESS_PASS":case 75:message.tollPasses[i]=75;break;case"US_NJ_EZPASSNJ":case 74:message.tollPasses[i]=74;break;case"US_NY_EXPRESSPASS":case 76:message.tollPasses[i]=76;break;case"US_NY_EZPASSNY":case 77:message.tollPasses[i]=77;break;case"US_OH_EZPASSOH":case 44:message.tollPasses[i]=44;break;case"US_PA_EZPASSPA":case 45:message.tollPasses[i]=45;break;case"US_RI_EZPASSRI":case 46:message.tollPasses[i]=46;break;case"US_SC_PALPASS":case 47:message.tollPasses[i]=47;break;case"US_TX_AVI_TAG":case 97:message.tollPasses[i]=97;break;case"US_TX_BANCPASS":case 48:message.tollPasses[i]=48;break;case"US_TX_DEL_RIO_PASS":case 49:message.tollPasses[i]=49;break;case"US_TX_EFAST_PASS":case 50:message.tollPasses[i]=50;break;case"US_TX_EAGLE_PASS_EXPRESS_CARD":case 51:message.tollPasses[i]=51;break;case"US_TX_EPTOLL":case 52:message.tollPasses[i]=52;break;case"US_TX_EZ_CROSS":case 53:message.tollPasses[i]=53;break;case"US_TX_EZTAG":case 54:message.tollPasses[i]=54;break;case"US_TX_FUEGO_TAG":case 96:message.tollPasses[i]=96;break;case"US_TX_LAREDO_TRADE_TAG":case 55:message.tollPasses[i]=55;break;case"US_TX_PLUSPASS":case 56:message.tollPasses[i]=56;break;case"US_TX_TOLLTAG":case 57:message.tollPasses[i]=57;break;case"US_TX_TXTAG":case 58:message.tollPasses[i]=58;break;case"US_TX_XPRESS_CARD":case 59:message.tollPasses[i]=59;break;case"US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD":case 60:message.tollPasses[i]=60;break;case"US_VA_EZPASSVA":case 61:message.tollPasses[i]=61;break;case"US_WA_BREEZEBY":case 17:message.tollPasses[i]=17;break;case"US_WA_GOOD_TO_GO":case 1:message.tollPasses[i]=1;break;case"US_WV_EZPASSWV":case 62:message.tollPasses[i]=62;break;case"US_WV_MEMORIAL_BRIDGE_TICKETS":case 63:message.tollPasses[i]=63;break;case"US_WV_MOV_PASS":case 100:message.tollPasses[i]=100;break;case"US_WV_NEWELL_TOLL_BRIDGE_TICKET":case 64:message.tollPasses[i]=64;break}}if(object.avoidTunnels!=null)message.avoidTunnels=Boolean(object.avoidTunnels);return message};RouteModifiers.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.tollPasses=[];if(options.defaults){object.avoidTolls=false;object.avoidHighways=false;object.avoidFerries=false;object.avoidIndoor=false;object.vehicleInfo=null;object.avoidTunnels=false}if(message.avoidTolls!=null&&message.hasOwnProperty("avoidTolls"))object.avoidTolls=message.avoidTolls;if(message.avoidHighways!=null&&message.hasOwnProperty("avoidHighways"))object.avoidHighways=message.avoidHighways;if(message.avoidFerries!=null&&message.hasOwnProperty("avoidFerries"))object.avoidFerries=message.avoidFerries;if(message.avoidIndoor!=null&&message.hasOwnProperty("avoidIndoor"))object.avoidIndoor=message.avoidIndoor;if(message.vehicleInfo!=null&&message.hasOwnProperty("vehicleInfo"))object.vehicleInfo=$root.google.maps.routing.v2.VehicleInfo.toObject(message.vehicleInfo,options);if(message.tollPasses&&message.tollPasses.length){object.tollPasses=[];for(var j=0;j<message.tollPasses.length;++j)object.tollPasses[j]=options.enums===String?$root.google.maps.routing.v2.TollPass[message.tollPasses[j]]===undefined?message.tollPasses[j]:$root.google.maps.routing.v2.TollPass[message.tollPasses[j]]:message.tollPasses[j]}if(message.avoidTunnels!=null&&message.hasOwnProperty("avoidTunnels"))object.avoidTunnels=message.avoidTunnels;return object};RouteModifiers.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteModifiers.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteModifiers"};return RouteModifiers}();v2.TollPass=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TOLL_PASS_UNSPECIFIED"]=0;values[valuesById[82]="AU_ETOLL_TAG"]=82;values[valuesById[83]="AU_EWAY_TAG"]=83;values[valuesById[2]="AU_LINKT"]=2;values[valuesById[3]="AR_TELEPASE"]=3;values[valuesById[81]="BR_AUTO_EXPRESO"]=81;values[valuesById[7]="BR_CONECTCAR"]=7;values[valuesById[8]="BR_MOVE_MAIS"]=8;values[valuesById[88]="BR_PASSA_RAPIDO"]=88;values[valuesById[9]="BR_SEM_PARAR"]=9;values[valuesById[10]="BR_TAGGY"]=10;values[valuesById[11]="BR_VELOE"]=11;values[valuesById[84]="CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD"]=84;values[valuesById[85]="CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD"]=85;values[valuesById[18]="CA_US_BLUE_WATER_EDGE_PASS"]=18;values[valuesById[19]="CA_US_CONNEXION"]=19;values[valuesById[20]="CA_US_NEXUS_CARD"]=20;values[valuesById[16]="ID_E_TOLL"]=16;values[valuesById[78]="IN_FASTAG"]=78;values[valuesById[79]="IN_LOCAL_HP_PLATE_EXEMPT"]=79;values[valuesById[98]="JP_ETC"]=98;values[valuesById[99]="JP_ETC2"]=99;values[valuesById[90]="MX_IAVE"]=90;values[valuesById[91]="MX_PASE"]=91;values[valuesById[93]="MX_QUICKPASS"]=93;values[valuesById[89]="MX_SISTEMA_TELEPEAJE_CHIHUAHUA"]=89;values[valuesById[12]="MX_TAG_IAVE"]=12;values[valuesById[13]="MX_TAG_TELEVIA"]=13;values[valuesById[92]="MX_TELEVIA"]=92;values[valuesById[14]="MX_VIAPASS"]=14;values[valuesById[21]="US_AL_FREEDOM_PASS"]=21;values[valuesById[22]="US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS"]=22;values[valuesById[4]="US_CA_FASTRAK"]=4;values[valuesById[86]="US_CA_FASTRAK_CAV_STICKER"]=86;values[valuesById[23]="US_CO_EXPRESSTOLL"]=23;values[valuesById[24]="US_CO_GO_PASS"]=24;values[valuesById[25]="US_DE_EZPASSDE"]=25;values[valuesById[65]="US_FL_BOB_SIKES_TOLL_BRIDGE_PASS"]=65;values[valuesById[66]="US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD"]=66;values[valuesById[67]="US_FL_EPASS"]=67;values[valuesById[68]="US_FL_GIBA_TOLL_PASS"]=68;values[valuesById[69]="US_FL_LEEWAY"]=69;values[valuesById[70]="US_FL_SUNPASS"]=70;values[valuesById[71]="US_FL_SUNPASS_PRO"]=71;values[valuesById[73]="US_IL_EZPASSIL"]=73;values[valuesById[72]="US_IL_IPASS"]=72;values[valuesById[26]="US_IN_EZPASSIN"]=26;values[valuesById[27]="US_KS_BESTPASS_HORIZON"]=27;values[valuesById[28]="US_KS_KTAG"]=28;values[valuesById[29]="US_KS_NATIONALPASS"]=29;values[valuesById[30]="US_KS_PREPASS_ELITEPASS"]=30;values[valuesById[31]="US_KY_RIVERLINK"]=31;values[valuesById[32]="US_LA_GEAUXPASS"]=32;values[valuesById[33]="US_LA_TOLL_TAG"]=33;values[valuesById[6]="US_MA_EZPASSMA"]=6;values[valuesById[34]="US_MD_EZPASSMD"]=34;values[valuesById[35]="US_ME_EZPASSME"]=35;values[valuesById[36]="US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD"]=36;values[valuesById[94]="US_MI_BCPASS"]=94;values[valuesById[101]="US_MI_BREAKAWAY"]=101;values[valuesById[37]="US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG"]=37;values[valuesById[38]="US_MI_IQ_PROX_CARD"]=38;values[valuesById[95]="US_MI_IQ_TAG"]=95;values[valuesById[39]="US_MI_MACKINAC_BRIDGE_MAC_PASS"]=39;values[valuesById[40]="US_MI_NEXPRESS_TOLL"]=40;values[valuesById[41]="US_MN_EZPASSMN"]=41;values[valuesById[42]="US_NC_EZPASSNC"]=42;values[valuesById[87]="US_NC_PEACH_PASS"]=87;values[valuesById[43]="US_NC_QUICK_PASS"]=43;values[valuesById[80]="US_NH_EZPASSNH"]=80;values[valuesById[75]="US_NJ_DOWNBEACH_EXPRESS_PASS"]=75;values[valuesById[74]="US_NJ_EZPASSNJ"]=74;values[valuesById[76]="US_NY_EXPRESSPASS"]=76;values[valuesById[77]="US_NY_EZPASSNY"]=77;values[valuesById[44]="US_OH_EZPASSOH"]=44;values[valuesById[45]="US_PA_EZPASSPA"]=45;values[valuesById[46]="US_RI_EZPASSRI"]=46;values[valuesById[47]="US_SC_PALPASS"]=47;values[valuesById[97]="US_TX_AVI_TAG"]=97;values[valuesById[48]="US_TX_BANCPASS"]=48;values[valuesById[49]="US_TX_DEL_RIO_PASS"]=49;values[valuesById[50]="US_TX_EFAST_PASS"]=50;values[valuesById[51]="US_TX_EAGLE_PASS_EXPRESS_CARD"]=51;values[valuesById[52]="US_TX_EPTOLL"]=52;values[valuesById[53]="US_TX_EZ_CROSS"]=53;values[valuesById[54]="US_TX_EZTAG"]=54;values[valuesById[96]="US_TX_FUEGO_TAG"]=96;values[valuesById[55]="US_TX_LAREDO_TRADE_TAG"]=55;values[valuesById[56]="US_TX_PLUSPASS"]=56;values[valuesById[57]="US_TX_TOLLTAG"]=57;values[valuesById[58]="US_TX_TXTAG"]=58;values[valuesById[59]="US_TX_XPRESS_CARD"]=59;values[valuesById[60]="US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD"]=60;values[valuesById[61]="US_VA_EZPASSVA"]=61;values[valuesById[17]="US_WA_BREEZEBY"]=17;values[valuesById[1]="US_WA_GOOD_TO_GO"]=1;values[valuesById[62]="US_WV_EZPASSWV"]=62;values[valuesById[63]="US_WV_MEMORIAL_BRIDGE_TICKETS"]=63;values[valuesById[100]="US_WV_MOV_PASS"]=100;values[valuesById[64]="US_WV_NEWELL_TOLL_BRIDGE_TICKET"]=64;return values}();v2.VehicleInfo=function(){function VehicleInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}VehicleInfo.prototype.emissionType=0;VehicleInfo.create=function create(properties){return new VehicleInfo(properties)};VehicleInfo.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.emissionType!=null&&Object.hasOwnProperty.call(message,"emissionType"))writer.uint32(16).int32(message.emissionType);return writer};VehicleInfo.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};VehicleInfo.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.VehicleInfo;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 2:{message.emissionType=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};VehicleInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};VehicleInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.emissionType!=null&&message.hasOwnProperty("emissionType"))switch(message.emissionType){default:return"emissionType: enum value expected";case 0:case 1:case 2:case 3:case 4:break}return null};VehicleInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.VehicleInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.VehicleInfo;switch(object.emissionType){default:if(typeof object.emissionType==="number"){message.emissionType=object.emissionType;break}break;case"VEHICLE_EMISSION_TYPE_UNSPECIFIED":case 0:message.emissionType=0;break;case"GASOLINE":case 1:message.emissionType=1;break;case"ELECTRIC":case 2:message.emissionType=2;break;case"HYBRID":case 3:message.emissionType=3;break;case"DIESEL":case 4:message.emissionType=4;break}return message};VehicleInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.emissionType=options.enums===String?"VEHICLE_EMISSION_TYPE_UNSPECIFIED":0;if(message.emissionType!=null&&message.hasOwnProperty("emissionType"))object.emissionType=options.enums===String?$root.google.maps.routing.v2.VehicleEmissionType[message.emissionType]===undefined?message.emissionType:$root.google.maps.routing.v2.VehicleEmissionType[message.emissionType]:message.emissionType;return object};VehicleInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};VehicleInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.VehicleInfo"};return VehicleInfo}();v2.VehicleEmissionType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="VEHICLE_EMISSION_TYPE_UNSPECIFIED"]=0;values[valuesById[1]="GASOLINE"]=1;values[valuesById[2]="ELECTRIC"]=2;values[valuesById[3]="HYBRID"]=3;values[valuesById[4]="DIESEL"]=4;return values}();v2.Routes=function(){function Routes(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}(Routes.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=Routes;Routes.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)};Object.defineProperty(Routes.prototype.computeRoutes=function computeRoutes(request,callback){return this.rpcCall(computeRoutes,$root.google.maps.routing.v2.ComputeRoutesRequest,$root.google.maps.routing.v2.ComputeRoutesResponse,request,callback)},"name",{value:"ComputeRoutes"});Object.defineProperty(Routes.prototype.computeRouteMatrix=function computeRouteMatrix(request,callback){return this.rpcCall(computeRouteMatrix,$root.google.maps.routing.v2.ComputeRouteMatrixRequest,$root.google.maps.routing.v2.RouteMatrixElement,request,callback)},"name",{value:"ComputeRouteMatrix"});return Routes}();v2.ComputeRoutesRequest=function(){function ComputeRoutesRequest(properties){this.intermediates=[];this.requestedReferenceRoutes=[];this.extraComputations=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ComputeRoutesRequest.prototype.origin=null;ComputeRoutesRequest.prototype.destination=null;ComputeRoutesRequest.prototype.intermediates=$util.emptyArray;ComputeRoutesRequest.prototype.travelMode=0;ComputeRoutesRequest.prototype.routingPreference=0;ComputeRoutesRequest.prototype.polylineQuality=0;ComputeRoutesRequest.prototype.polylineEncoding=0;ComputeRoutesRequest.prototype.departureTime=null;ComputeRoutesRequest.prototype.arrivalTime=null;ComputeRoutesRequest.prototype.computeAlternativeRoutes=false;ComputeRoutesRequest.prototype.routeModifiers=null;ComputeRoutesRequest.prototype.languageCode="";ComputeRoutesRequest.prototype.regionCode="";ComputeRoutesRequest.prototype.units=0;ComputeRoutesRequest.prototype.optimizeWaypointOrder=false;ComputeRoutesRequest.prototype.requestedReferenceRoutes=$util.emptyArray;ComputeRoutesRequest.prototype.extraComputations=$util.emptyArray;ComputeRoutesRequest.prototype.trafficModel=0;ComputeRoutesRequest.prototype.transitPreferences=null;ComputeRoutesRequest.create=function create(properties){return new ComputeRoutesRequest(properties)};ComputeRoutesRequest.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.origin!=null&&Object.hasOwnProperty.call(message,"origin"))$root.google.maps.routing.v2.Waypoint.encode(message.origin,writer.uint32(10).fork()).ldelim();if(message.destination!=null&&Object.hasOwnProperty.call(message,"destination"))$root.google.maps.routing.v2.Waypoint.encode(message.destination,writer.uint32(18).fork()).ldelim();if(message.intermediates!=null&&message.intermediates.length)for(var i=0;i<message.intermediates.length;++i)$root.google.maps.routing.v2.Waypoint.encode(message.intermediates[i],writer.uint32(26).fork()).ldelim();if(message.travelMode!=null&&Object.hasOwnProperty.call(message,"travelMode"))writer.uint32(32).int32(message.travelMode);if(message.routingPreference!=null&&Object.hasOwnProperty.call(message,"routingPreference"))writer.uint32(40).int32(message.routingPreference);if(message.polylineQuality!=null&&Object.hasOwnProperty.call(message,"polylineQuality"))writer.uint32(48).int32(message.polylineQuality);if(message.departureTime!=null&&Object.hasOwnProperty.call(message,"departureTime"))$root.google.protobuf.Timestamp.encode(message.departureTime,writer.uint32(58).fork()).ldelim();if(message.computeAlternativeRoutes!=null&&Object.hasOwnProperty.call(message,"computeAlternativeRoutes"))writer.uint32(64).bool(message.computeAlternativeRoutes);if(message.routeModifiers!=null&&Object.hasOwnProperty.call(message,"routeModifiers"))$root.google.maps.routing.v2.RouteModifiers.encode(message.routeModifiers,writer.uint32(74).fork()).ldelim();if(message.languageCode!=null&&Object.hasOwnProperty.call(message,"languageCode"))writer.uint32(82).string(message.languageCode);if(message.units!=null&&Object.hasOwnProperty.call(message,"units"))writer.uint32(88).int32(message.units);if(message.polylineEncoding!=null&&Object.hasOwnProperty.call(message,"polylineEncoding"))writer.uint32(96).int32(message.polylineEncoding);if(message.optimizeWaypointOrder!=null&&Object.hasOwnProperty.call(message,"optimizeWaypointOrder"))writer.uint32(104).bool(message.optimizeWaypointOrder);if(message.requestedReferenceRoutes!=null&&message.requestedReferenceRoutes.length){writer.uint32(114).fork();for(var i=0;i<message.requestedReferenceRoutes.length;++i)writer.int32(message.requestedReferenceRoutes[i]);writer.ldelim()}if(message.extraComputations!=null&&message.extraComputations.length){writer.uint32(122).fork();for(var i=0;i<message.extraComputations.length;++i)writer.int32(message.extraComputations[i]);writer.ldelim()}if(message.regionCode!=null&&Object.hasOwnProperty.call(message,"regionCode"))writer.uint32(130).string(message.regionCode);if(message.trafficModel!=null&&Object.hasOwnProperty.call(message,"trafficModel"))writer.uint32(144).int32(message.trafficModel);if(message.arrivalTime!=null&&Object.hasOwnProperty.call(message,"arrivalTime"))$root.google.protobuf.Timestamp.encode(message.arrivalTime,writer.uint32(154).fork()).ldelim();if(message.transitPreferences!=null&&Object.hasOwnProperty.call(message,"transitPreferences"))$root.google.maps.routing.v2.TransitPreferences.encode(message.transitPreferences,writer.uint32(162).fork()).ldelim();return writer};ComputeRoutesRequest.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ComputeRoutesRequest.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.ComputeRoutesRequest;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.origin=$root.google.maps.routing.v2.Waypoint.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.destination=$root.google.maps.routing.v2.Waypoint.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{if(!(message.intermediates&&message.intermediates.length))message.intermediates=[];message.intermediates.push($root.google.maps.routing.v2.Waypoint.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.travelMode=reader.int32();break}case 5:{message.routingPreference=reader.int32();break}case 6:{message.polylineQuality=reader.int32();break}case 12:{message.polylineEncoding=reader.int32();break}case 7:{message.departureTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 19:{message.arrivalTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.computeAlternativeRoutes=reader.bool();break}case 9:{message.routeModifiers=$root.google.maps.routing.v2.RouteModifiers.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.languageCode=reader.string();break}case 16:{message.regionCode=reader.string();break}case 11:{message.units=reader.int32();break}case 13:{message.optimizeWaypointOrder=reader.bool();break}case 14:{if(!(message.requestedReferenceRoutes&&message.requestedReferenceRoutes.length))message.requestedReferenceRoutes=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.requestedReferenceRoutes.push(reader.int32())}else message.requestedReferenceRoutes.push(reader.int32());break}case 15:{if(!(message.extraComputations&&message.extraComputations.length))message.extraComputations=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.extraComputations.push(reader.int32())}else message.extraComputations.push(reader.int32());break}case 18:{message.trafficModel=reader.int32();break}case 20:{message.transitPreferences=$root.google.maps.routing.v2.TransitPreferences.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ComputeRoutesRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ComputeRoutesRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.origin!=null&&message.hasOwnProperty("origin")){var error=$root.google.maps.routing.v2.Waypoint.verify(message.origin,long+1);if(error)return"origin."+error}if(message.destination!=null&&message.hasOwnProperty("destination")){var error=$root.google.maps.routing.v2.Waypoint.verify(message.destination,long+1);if(error)return"destination."+error}if(message.intermediates!=null&&message.hasOwnProperty("intermediates")){if(!Array.isArray(message.intermediates))return"intermediates: array expected";for(var i=0;i<message.intermediates.length;++i){var error=$root.google.maps.routing.v2.Waypoint.verify(message.intermediates[i],long+1);if(error)return"intermediates."+error}}if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))switch(message.travelMode){default:return"travelMode: enum value expected";case 0:case 1:case 2:case 3:case 4:case 7:break}if(message.routingPreference!=null&&message.hasOwnProperty("routingPreference"))switch(message.routingPreference){default:return"routingPreference: enum value expected";case 0:case 1:case 2:case 3:break}if(message.polylineQuality!=null&&message.hasOwnProperty("polylineQuality"))switch(message.polylineQuality){default:return"polylineQuality: enum value expected";case 0:case 1:case 2:break}if(message.polylineEncoding!=null&&message.hasOwnProperty("polylineEncoding"))switch(message.polylineEncoding){default:return"polylineEncoding: enum value expected";case 0:case 1:case 2:break}if(message.departureTime!=null&&message.hasOwnProperty("departureTime")){var error=$root.google.protobuf.Timestamp.verify(message.departureTime,long+1);if(error)return"departureTime."+error}if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime")){var error=$root.google.protobuf.Timestamp.verify(message.arrivalTime,long+1);if(error)return"arrivalTime."+error}if(message.computeAlternativeRoutes!=null&&message.hasOwnProperty("computeAlternativeRoutes"))if(typeof message.computeAlternativeRoutes!=="boolean")return"computeAlternativeRoutes: boolean expected";if(message.routeModifiers!=null&&message.hasOwnProperty("routeModifiers")){var error=$root.google.maps.routing.v2.RouteModifiers.verify(message.routeModifiers,long+1);if(error)return"routeModifiers."+error}if(message.languageCode!=null&&message.hasOwnProperty("languageCode"))if(!$util.isString(message.languageCode))return"languageCode: string expected";if(message.regionCode!=null&&message.hasOwnProperty("regionCode"))if(!$util.isString(message.regionCode))return"regionCode: string expected";if(message.units!=null&&message.hasOwnProperty("units"))switch(message.units){default:return"units: enum value expected";case 0:case 1:case 2:break}if(message.optimizeWaypointOrder!=null&&message.hasOwnProperty("optimizeWaypointOrder"))if(typeof message.optimizeWaypointOrder!=="boolean")return"optimizeWaypointOrder: boolean expected";if(message.requestedReferenceRoutes!=null&&message.hasOwnProperty("requestedReferenceRoutes")){if(!Array.isArray(message.requestedReferenceRoutes))return"requestedReferenceRoutes: array expected";for(var i=0;i<message.requestedReferenceRoutes.length;++i)switch(message.requestedReferenceRoutes[i]){default:return"requestedReferenceRoutes: enum value[] expected";case 0:case 1:case 2:break}}if(message.extraComputations!=null&&message.hasOwnProperty("extraComputations")){if(!Array.isArray(message.extraComputations))return"extraComputations: array expected";for(var i=0;i<message.extraComputations.length;++i)switch(message.extraComputations[i]){default:return"extraComputations: enum value[] expected";case 0:case 1:case 2:case 3:case 4:case 7:case 8:case 9:case 10:case 11:break}}if(message.trafficModel!=null&&message.hasOwnProperty("trafficModel"))switch(message.trafficModel){default:return"trafficModel: enum value expected";case 0:case 1:case 2:case 3:break}if(message.transitPreferences!=null&&message.hasOwnProperty("transitPreferences")){var error=$root.google.maps.routing.v2.TransitPreferences.verify(message.transitPreferences,long+1);if(error)return"transitPreferences."+error}return null};ComputeRoutesRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.ComputeRoutesRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.ComputeRoutesRequest;if(object.origin!=null){if(typeof object.origin!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.origin: object expected");message.origin=$root.google.maps.routing.v2.Waypoint.fromObject(object.origin,long+1)}if(object.destination!=null){if(typeof object.destination!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.destination: object expected");message.destination=$root.google.maps.routing.v2.Waypoint.fromObject(object.destination,long+1)}if(object.intermediates){if(!Array.isArray(object.intermediates))throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.intermediates: array expected");message.intermediates=[];for(var i=0;i<object.intermediates.length;++i){if(typeof object.intermediates[i]!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.intermediates: object expected");message.intermediates[i]=$root.google.maps.routing.v2.Waypoint.fromObject(object.intermediates[i],long+1)}}switch(object.travelMode){default:if(typeof object.travelMode==="number"){message.travelMode=object.travelMode;break}break;case"TRAVEL_MODE_UNSPECIFIED":case 0:message.travelMode=0;break;case"DRIVE":case 1:message.travelMode=1;break;case"BICYCLE":case 2:message.travelMode=2;break;case"WALK":case 3:message.travelMode=3;break;case"TWO_WHEELER":case 4:message.travelMode=4;break;case"TRANSIT":case 7:message.travelMode=7;break}switch(object.routingPreference){default:if(typeof object.routingPreference==="number"){message.routingPreference=object.routingPreference;break}break;case"ROUTING_PREFERENCE_UNSPECIFIED":case 0:message.routingPreference=0;break;case"TRAFFIC_UNAWARE":case 1:message.routingPreference=1;break;case"TRAFFIC_AWARE":case 2:message.routingPreference=2;break;case"TRAFFIC_AWARE_OPTIMAL":case 3:message.routingPreference=3;break}switch(object.polylineQuality){default:if(typeof object.polylineQuality==="number"){message.polylineQuality=object.polylineQuality;break}break;case"POLYLINE_QUALITY_UNSPECIFIED":case 0:message.polylineQuality=0;break;case"HIGH_QUALITY":case 1:message.polylineQuality=1;break;case"OVERVIEW":case 2:message.polylineQuality=2;break}switch(object.polylineEncoding){default:if(typeof object.polylineEncoding==="number"){message.polylineEncoding=object.polylineEncoding;break}break;case"POLYLINE_ENCODING_UNSPECIFIED":case 0:message.polylineEncoding=0;break;case"ENCODED_POLYLINE":case 1:message.polylineEncoding=1;break;case"GEO_JSON_LINESTRING":case 2:message.polylineEncoding=2;break}if(object.departureTime!=null){if(typeof object.departureTime!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.departureTime: object expected");message.departureTime=$root.google.protobuf.Timestamp.fromObject(object.departureTime,long+1)}if(object.arrivalTime!=null){if(typeof object.arrivalTime!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.arrivalTime: object expected");message.arrivalTime=$root.google.protobuf.Timestamp.fromObject(object.arrivalTime,long+1)}if(object.computeAlternativeRoutes!=null)message.computeAlternativeRoutes=Boolean(object.computeAlternativeRoutes);if(object.routeModifiers!=null){if(typeof object.routeModifiers!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.routeModifiers: object expected");message.routeModifiers=$root.google.maps.routing.v2.RouteModifiers.fromObject(object.routeModifiers,long+1)}if(object.languageCode!=null)message.languageCode=String(object.languageCode);if(object.regionCode!=null)message.regionCode=String(object.regionCode);switch(object.units){default:if(typeof object.units==="number"){message.units=object.units;break}break;case"UNITS_UNSPECIFIED":case 0:message.units=0;break;case"METRIC":case 1:message.units=1;break;case"IMPERIAL":case 2:message.units=2;break}if(object.optimizeWaypointOrder!=null)message.optimizeWaypointOrder=Boolean(object.optimizeWaypointOrder);if(object.requestedReferenceRoutes){if(!Array.isArray(object.requestedReferenceRoutes))throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.requestedReferenceRoutes: array expected");message.requestedReferenceRoutes=[];for(var i=0;i<object.requestedReferenceRoutes.length;++i)switch(object.requestedReferenceRoutes[i]){default:if(typeof object.requestedReferenceRoutes[i]==="number"){message.requestedReferenceRoutes[i]=object.requestedReferenceRoutes[i];break}case"REFERENCE_ROUTE_UNSPECIFIED":case 0:message.requestedReferenceRoutes[i]=0;break;case"FUEL_EFFICIENT":case 1:message.requestedReferenceRoutes[i]=1;break;case"SHORTER_DISTANCE":case 2:message.requestedReferenceRoutes[i]=2;break}}if(object.extraComputations){if(!Array.isArray(object.extraComputations))throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.extraComputations: array expected");message.extraComputations=[];for(var i=0;i<object.extraComputations.length;++i)switch(object.extraComputations[i]){default:if(typeof object.extraComputations[i]==="number"){message.extraComputations[i]=object.extraComputations[i];break}case"EXTRA_COMPUTATION_UNSPECIFIED":case 0:message.extraComputations[i]=0;break;case"TOLLS":case 1:message.extraComputations[i]=1;break;case"FUEL_CONSUMPTION":case 2:message.extraComputations[i]=2;break;case"TRAFFIC_ON_POLYLINE":case 3:message.extraComputations[i]=3;break;case"HTML_FORMATTED_NAVIGATION_INSTRUCTIONS":case 4:message.extraComputations[i]=4;break;case"FLYOVER_INFO_ON_POLYLINE":case 7:message.extraComputations[i]=7;break;case"NARROW_ROAD_INFO_ON_POLYLINE":case 8:message.extraComputations[i]=8;break;case"TUNNEL_INFO_ON_POLYLINE":case 9:message.extraComputations[i]=9;break;case"BRIDGE_INFO_ON_POLYLINE":case 10:message.extraComputations[i]=10;break;case"SKYWAY_INFO_ON_POLYLINE":case 11:message.extraComputations[i]=11;break}}switch(object.trafficModel){default:if(typeof object.trafficModel==="number"){message.trafficModel=object.trafficModel;break}break;case"TRAFFIC_MODEL_UNSPECIFIED":case 0:message.trafficModel=0;break;case"BEST_GUESS":case 1:message.trafficModel=1;break;case"PESSIMISTIC":case 2:message.trafficModel=2;break;case"OPTIMISTIC":case 3:message.trafficModel=3;break}if(object.transitPreferences!=null){if(typeof object.transitPreferences!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesRequest.transitPreferences: object expected");message.transitPreferences=$root.google.maps.routing.v2.TransitPreferences.fromObject(object.transitPreferences,long+1)}return message};ComputeRoutesRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.intermediates=[];object.requestedReferenceRoutes=[];object.extraComputations=[]}if(options.defaults){object.origin=null;object.destination=null;object.travelMode=options.enums===String?"TRAVEL_MODE_UNSPECIFIED":0;object.routingPreference=options.enums===String?"ROUTING_PREFERENCE_UNSPECIFIED":0;object.polylineQuality=options.enums===String?"POLYLINE_QUALITY_UNSPECIFIED":0;object.departureTime=null;object.computeAlternativeRoutes=false;object.routeModifiers=null;object.languageCode="";object.units=options.enums===String?"UNITS_UNSPECIFIED":0;object.polylineEncoding=options.enums===String?"POLYLINE_ENCODING_UNSPECIFIED":0;object.optimizeWaypointOrder=false;object.regionCode="";object.trafficModel=options.enums===String?"TRAFFIC_MODEL_UNSPECIFIED":0;object.arrivalTime=null;object.transitPreferences=null}if(message.origin!=null&&message.hasOwnProperty("origin"))object.origin=$root.google.maps.routing.v2.Waypoint.toObject(message.origin,options);if(message.destination!=null&&message.hasOwnProperty("destination"))object.destination=$root.google.maps.routing.v2.Waypoint.toObject(message.destination,options);if(message.intermediates&&message.intermediates.length){object.intermediates=[];for(var j=0;j<message.intermediates.length;++j)object.intermediates[j]=$root.google.maps.routing.v2.Waypoint.toObject(message.intermediates[j],options)}if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))object.travelMode=options.enums===String?$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]===undefined?message.travelMode:$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]:message.travelMode;if(message.routingPreference!=null&&message.hasOwnProperty("routingPreference"))object.routingPreference=options.enums===String?$root.google.maps.routing.v2.RoutingPreference[message.routingPreference]===undefined?message.routingPreference:$root.google.maps.routing.v2.RoutingPreference[message.routingPreference]:message.routingPreference;if(message.polylineQuality!=null&&message.hasOwnProperty("polylineQuality"))object.polylineQuality=options.enums===String?$root.google.maps.routing.v2.PolylineQuality[message.polylineQuality]===undefined?message.polylineQuality:$root.google.maps.routing.v2.PolylineQuality[message.polylineQuality]:message.polylineQuality;if(message.departureTime!=null&&message.hasOwnProperty("departureTime"))object.departureTime=$root.google.protobuf.Timestamp.toObject(message.departureTime,options);if(message.computeAlternativeRoutes!=null&&message.hasOwnProperty("computeAlternativeRoutes"))object.computeAlternativeRoutes=message.computeAlternativeRoutes;if(message.routeModifiers!=null&&message.hasOwnProperty("routeModifiers"))object.routeModifiers=$root.google.maps.routing.v2.RouteModifiers.toObject(message.routeModifiers,options);if(message.languageCode!=null&&message.hasOwnProperty("languageCode"))object.languageCode=message.languageCode;if(message.units!=null&&message.hasOwnProperty("units"))object.units=options.enums===String?$root.google.maps.routing.v2.Units[message.units]===undefined?message.units:$root.google.maps.routing.v2.Units[message.units]:message.units;if(message.polylineEncoding!=null&&message.hasOwnProperty("polylineEncoding"))object.polylineEncoding=options.enums===String?$root.google.maps.routing.v2.PolylineEncoding[message.polylineEncoding]===undefined?message.polylineEncoding:$root.google.maps.routing.v2.PolylineEncoding[message.polylineEncoding]:message.polylineEncoding;if(message.optimizeWaypointOrder!=null&&message.hasOwnProperty("optimizeWaypointOrder"))object.optimizeWaypointOrder=message.optimizeWaypointOrder;if(message.requestedReferenceRoutes&&message.requestedReferenceRoutes.length){object.requestedReferenceRoutes=[];for(var j=0;j<message.requestedReferenceRoutes.length;++j)object.requestedReferenceRoutes[j]=options.enums===String?$root.google.maps.routing.v2.ComputeRoutesRequest.ReferenceRoute[message.requestedReferenceRoutes[j]]===undefined?message.requestedReferenceRoutes[j]:$root.google.maps.routing.v2.ComputeRoutesRequest.ReferenceRoute[message.requestedReferenceRoutes[j]]:message.requestedReferenceRoutes[j]}if(message.extraComputations&&message.extraComputations.length){object.extraComputations=[];for(var j=0;j<message.extraComputations.length;++j)object.extraComputations[j]=options.enums===String?$root.google.maps.routing.v2.ComputeRoutesRequest.ExtraComputation[message.extraComputations[j]]===undefined?message.extraComputations[j]:$root.google.maps.routing.v2.ComputeRoutesRequest.ExtraComputation[message.extraComputations[j]]:message.extraComputations[j]}if(message.regionCode!=null&&message.hasOwnProperty("regionCode"))object.regionCode=message.regionCode;if(message.trafficModel!=null&&message.hasOwnProperty("trafficModel"))object.trafficModel=options.enums===String?$root.google.maps.routing.v2.TrafficModel[message.trafficModel]===undefined?message.trafficModel:$root.google.maps.routing.v2.TrafficModel[message.trafficModel]:message.trafficModel;if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime"))object.arrivalTime=$root.google.protobuf.Timestamp.toObject(message.arrivalTime,options);if(message.transitPreferences!=null&&message.hasOwnProperty("transitPreferences"))object.transitPreferences=$root.google.maps.routing.v2.TransitPreferences.toObject(message.transitPreferences,options);return object};ComputeRoutesRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ComputeRoutesRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.ComputeRoutesRequest"};ComputeRoutesRequest.ReferenceRoute=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="REFERENCE_ROUTE_UNSPECIFIED"]=0;values[valuesById[1]="FUEL_EFFICIENT"]=1;values[valuesById[2]="SHORTER_DISTANCE"]=2;return values}();ComputeRoutesRequest.ExtraComputation=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="EXTRA_COMPUTATION_UNSPECIFIED"]=0;values[valuesById[1]="TOLLS"]=1;values[valuesById[2]="FUEL_CONSUMPTION"]=2;values[valuesById[3]="TRAFFIC_ON_POLYLINE"]=3;values[valuesById[4]="HTML_FORMATTED_NAVIGATION_INSTRUCTIONS"]=4;values[valuesById[7]="FLYOVER_INFO_ON_POLYLINE"]=7;values[valuesById[8]="NARROW_ROAD_INFO_ON_POLYLINE"]=8;values[valuesById[9]="TUNNEL_INFO_ON_POLYLINE"]=9;values[valuesById[10]="BRIDGE_INFO_ON_POLYLINE"]=10;values[valuesById[11]="SKYWAY_INFO_ON_POLYLINE"]=11;return values}();return ComputeRoutesRequest}();v2.ComputeRoutesResponse=function(){function ComputeRoutesResponse(properties){this.routes=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ComputeRoutesResponse.prototype.routes=$util.emptyArray;ComputeRoutesResponse.prototype.fallbackInfo=null;ComputeRoutesResponse.prototype.geocodingResults=null;ComputeRoutesResponse.create=function create(properties){return new ComputeRoutesResponse(properties)};ComputeRoutesResponse.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.routes!=null&&message.routes.length)for(var i=0;i<message.routes.length;++i)$root.google.maps.routing.v2.Route.encode(message.routes[i],writer.uint32(10).fork()).ldelim();if(message.fallbackInfo!=null&&Object.hasOwnProperty.call(message,"fallbackInfo"))$root.google.maps.routing.v2.FallbackInfo.encode(message.fallbackInfo,writer.uint32(18).fork()).ldelim();if(message.geocodingResults!=null&&Object.hasOwnProperty.call(message,"geocodingResults"))$root.google.maps.routing.v2.GeocodingResults.encode(message.geocodingResults,writer.uint32(26).fork()).ldelim();return writer};ComputeRoutesResponse.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ComputeRoutesResponse.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.ComputeRoutesResponse;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.routes&&message.routes.length))message.routes=[];message.routes.push($root.google.maps.routing.v2.Route.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.fallbackInfo=$root.google.maps.routing.v2.FallbackInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.geocodingResults=$root.google.maps.routing.v2.GeocodingResults.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ComputeRoutesResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ComputeRoutesResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.routes!=null&&message.hasOwnProperty("routes")){if(!Array.isArray(message.routes))return"routes: array expected";for(var i=0;i<message.routes.length;++i){var error=$root.google.maps.routing.v2.Route.verify(message.routes[i],long+1);if(error)return"routes."+error}}if(message.fallbackInfo!=null&&message.hasOwnProperty("fallbackInfo")){var error=$root.google.maps.routing.v2.FallbackInfo.verify(message.fallbackInfo,long+1);if(error)return"fallbackInfo."+error}if(message.geocodingResults!=null&&message.hasOwnProperty("geocodingResults")){var error=$root.google.maps.routing.v2.GeocodingResults.verify(message.geocodingResults,long+1);if(error)return"geocodingResults."+error}return null};ComputeRoutesResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.ComputeRoutesResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.ComputeRoutesResponse;if(object.routes){if(!Array.isArray(object.routes))throw TypeError(".google.maps.routing.v2.ComputeRoutesResponse.routes: array expected");message.routes=[];for(var i=0;i<object.routes.length;++i){if(typeof object.routes[i]!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesResponse.routes: object expected");message.routes[i]=$root.google.maps.routing.v2.Route.fromObject(object.routes[i],long+1)}}if(object.fallbackInfo!=null){if(typeof object.fallbackInfo!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesResponse.fallbackInfo: object expected");message.fallbackInfo=$root.google.maps.routing.v2.FallbackInfo.fromObject(object.fallbackInfo,long+1)}if(object.geocodingResults!=null){if(typeof object.geocodingResults!=="object")throw TypeError(".google.maps.routing.v2.ComputeRoutesResponse.geocodingResults: object expected");message.geocodingResults=$root.google.maps.routing.v2.GeocodingResults.fromObject(object.geocodingResults,long+1)}return message};ComputeRoutesResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.routes=[];if(options.defaults){object.fallbackInfo=null;object.geocodingResults=null}if(message.routes&&message.routes.length){object.routes=[];for(var j=0;j<message.routes.length;++j)object.routes[j]=$root.google.maps.routing.v2.Route.toObject(message.routes[j],options)}if(message.fallbackInfo!=null&&message.hasOwnProperty("fallbackInfo"))object.fallbackInfo=$root.google.maps.routing.v2.FallbackInfo.toObject(message.fallbackInfo,options);if(message.geocodingResults!=null&&message.hasOwnProperty("geocodingResults"))object.geocodingResults=$root.google.maps.routing.v2.GeocodingResults.toObject(message.geocodingResults,options);return object};ComputeRoutesResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ComputeRoutesResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.ComputeRoutesResponse"};return ComputeRoutesResponse}();v2.ComputeRouteMatrixRequest=function(){function ComputeRouteMatrixRequest(properties){this.origins=[];this.destinations=[];this.extraComputations=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ComputeRouteMatrixRequest.prototype.origins=$util.emptyArray;ComputeRouteMatrixRequest.prototype.destinations=$util.emptyArray;ComputeRouteMatrixRequest.prototype.travelMode=0;ComputeRouteMatrixRequest.prototype.routingPreference=0;ComputeRouteMatrixRequest.prototype.departureTime=null;ComputeRouteMatrixRequest.prototype.arrivalTime=null;ComputeRouteMatrixRequest.prototype.languageCode="";ComputeRouteMatrixRequest.prototype.regionCode="";ComputeRouteMatrixRequest.prototype.units=0;ComputeRouteMatrixRequest.prototype.extraComputations=$util.emptyArray;ComputeRouteMatrixRequest.prototype.trafficModel=0;ComputeRouteMatrixRequest.prototype.transitPreferences=null;ComputeRouteMatrixRequest.create=function create(properties){return new ComputeRouteMatrixRequest(properties)};ComputeRouteMatrixRequest.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.origins!=null&&message.origins.length)for(var i=0;i<message.origins.length;++i)$root.google.maps.routing.v2.RouteMatrixOrigin.encode(message.origins[i],writer.uint32(10).fork()).ldelim();if(message.destinations!=null&&message.destinations.length)for(var i=0;i<message.destinations.length;++i)$root.google.maps.routing.v2.RouteMatrixDestination.encode(message.destinations[i],writer.uint32(18).fork()).ldelim();if(message.travelMode!=null&&Object.hasOwnProperty.call(message,"travelMode"))writer.uint32(24).int32(message.travelMode);if(message.routingPreference!=null&&Object.hasOwnProperty.call(message,"routingPreference"))writer.uint32(32).int32(message.routingPreference);if(message.departureTime!=null&&Object.hasOwnProperty.call(message,"departureTime"))$root.google.protobuf.Timestamp.encode(message.departureTime,writer.uint32(42).fork()).ldelim();if(message.languageCode!=null&&Object.hasOwnProperty.call(message,"languageCode"))writer.uint32(50).string(message.languageCode);if(message.units!=null&&Object.hasOwnProperty.call(message,"units"))writer.uint32(56).int32(message.units);if(message.extraComputations!=null&&message.extraComputations.length){writer.uint32(66).fork();for(var i=0;i<message.extraComputations.length;++i)writer.int32(message.extraComputations[i]);writer.ldelim()}if(message.regionCode!=null&&Object.hasOwnProperty.call(message,"regionCode"))writer.uint32(74).string(message.regionCode);if(message.trafficModel!=null&&Object.hasOwnProperty.call(message,"trafficModel"))writer.uint32(80).int32(message.trafficModel);if(message.arrivalTime!=null&&Object.hasOwnProperty.call(message,"arrivalTime"))$root.google.protobuf.Timestamp.encode(message.arrivalTime,writer.uint32(90).fork()).ldelim();if(message.transitPreferences!=null&&Object.hasOwnProperty.call(message,"transitPreferences"))$root.google.maps.routing.v2.TransitPreferences.encode(message.transitPreferences,writer.uint32(98).fork()).ldelim();return writer};ComputeRouteMatrixRequest.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ComputeRouteMatrixRequest.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.ComputeRouteMatrixRequest;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.origins&&message.origins.length))message.origins=[];message.origins.push($root.google.maps.routing.v2.RouteMatrixOrigin.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{if(!(message.destinations&&message.destinations.length))message.destinations=[];message.destinations.push($root.google.maps.routing.v2.RouteMatrixDestination.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.travelMode=reader.int32();break}case 4:{message.routingPreference=reader.int32();break}case 5:{message.departureTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 11:{message.arrivalTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.languageCode=reader.string();break}case 9:{message.regionCode=reader.string();break}case 7:{message.units=reader.int32();break}case 8:{if(!(message.extraComputations&&message.extraComputations.length))message.extraComputations=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.extraComputations.push(reader.int32())}else message.extraComputations.push(reader.int32());break}case 10:{message.trafficModel=reader.int32();break}case 12:{message.transitPreferences=$root.google.maps.routing.v2.TransitPreferences.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ComputeRouteMatrixRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ComputeRouteMatrixRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.origins!=null&&message.hasOwnProperty("origins")){if(!Array.isArray(message.origins))return"origins: array expected";for(var i=0;i<message.origins.length;++i){var error=$root.google.maps.routing.v2.RouteMatrixOrigin.verify(message.origins[i],long+1);if(error)return"origins."+error}}if(message.destinations!=null&&message.hasOwnProperty("destinations")){if(!Array.isArray(message.destinations))return"destinations: array expected";for(var i=0;i<message.destinations.length;++i){var error=$root.google.maps.routing.v2.RouteMatrixDestination.verify(message.destinations[i],long+1);if(error)return"destinations."+error}}if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))switch(message.travelMode){default:return"travelMode: enum value expected";case 0:case 1:case 2:case 3:case 4:case 7:break}if(message.routingPreference!=null&&message.hasOwnProperty("routingPreference"))switch(message.routingPreference){default:return"routingPreference: enum value expected";case 0:case 1:case 2:case 3:break}if(message.departureTime!=null&&message.hasOwnProperty("departureTime")){var error=$root.google.protobuf.Timestamp.verify(message.departureTime,long+1);if(error)return"departureTime."+error}if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime")){var error=$root.google.protobuf.Timestamp.verify(message.arrivalTime,long+1);if(error)return"arrivalTime."+error}if(message.languageCode!=null&&message.hasOwnProperty("languageCode"))if(!$util.isString(message.languageCode))return"languageCode: string expected";if(message.regionCode!=null&&message.hasOwnProperty("regionCode"))if(!$util.isString(message.regionCode))return"regionCode: string expected";if(message.units!=null&&message.hasOwnProperty("units"))switch(message.units){default:return"units: enum value expected";case 0:case 1:case 2:break}if(message.extraComputations!=null&&message.hasOwnProperty("extraComputations")){if(!Array.isArray(message.extraComputations))return"extraComputations: array expected";for(var i=0;i<message.extraComputations.length;++i)switch(message.extraComputations[i]){default:return"extraComputations: enum value[] expected";case 0:case 1:break}}if(message.trafficModel!=null&&message.hasOwnProperty("trafficModel"))switch(message.trafficModel){default:return"trafficModel: enum value expected";case 0:case 1:case 2:case 3:break}if(message.transitPreferences!=null&&message.hasOwnProperty("transitPreferences")){var error=$root.google.maps.routing.v2.TransitPreferences.verify(message.transitPreferences,long+1);if(error)return"transitPreferences."+error}return null};ComputeRouteMatrixRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.ComputeRouteMatrixRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.ComputeRouteMatrixRequest;if(object.origins){if(!Array.isArray(object.origins))throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.origins: array expected");message.origins=[];for(var i=0;i<object.origins.length;++i){if(typeof object.origins[i]!=="object")throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.origins: object expected");message.origins[i]=$root.google.maps.routing.v2.RouteMatrixOrigin.fromObject(object.origins[i],long+1)}}if(object.destinations){if(!Array.isArray(object.destinations))throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.destinations: array expected");message.destinations=[];for(var i=0;i<object.destinations.length;++i){if(typeof object.destinations[i]!=="object")throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.destinations: object expected");message.destinations[i]=$root.google.maps.routing.v2.RouteMatrixDestination.fromObject(object.destinations[i],long+1)}}switch(object.travelMode){default:if(typeof object.travelMode==="number"){message.travelMode=object.travelMode;break}break;case"TRAVEL_MODE_UNSPECIFIED":case 0:message.travelMode=0;break;case"DRIVE":case 1:message.travelMode=1;break;case"BICYCLE":case 2:message.travelMode=2;break;case"WALK":case 3:message.travelMode=3;break;case"TWO_WHEELER":case 4:message.travelMode=4;break;case"TRANSIT":case 7:message.travelMode=7;break}switch(object.routingPreference){default:if(typeof object.routingPreference==="number"){message.routingPreference=object.routingPreference;break}break;case"ROUTING_PREFERENCE_UNSPECIFIED":case 0:message.routingPreference=0;break;case"TRAFFIC_UNAWARE":case 1:message.routingPreference=1;break;case"TRAFFIC_AWARE":case 2:message.routingPreference=2;break;case"TRAFFIC_AWARE_OPTIMAL":case 3:message.routingPreference=3;break}if(object.departureTime!=null){if(typeof object.departureTime!=="object")throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.departureTime: object expected");message.departureTime=$root.google.protobuf.Timestamp.fromObject(object.departureTime,long+1)}if(object.arrivalTime!=null){if(typeof object.arrivalTime!=="object")throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.arrivalTime: object expected");message.arrivalTime=$root.google.protobuf.Timestamp.fromObject(object.arrivalTime,long+1)}if(object.languageCode!=null)message.languageCode=String(object.languageCode);if(object.regionCode!=null)message.regionCode=String(object.regionCode);switch(object.units){default:if(typeof object.units==="number"){message.units=object.units;break}break;case"UNITS_UNSPECIFIED":case 0:message.units=0;break;case"METRIC":case 1:message.units=1;break;case"IMPERIAL":case 2:message.units=2;break}if(object.extraComputations){if(!Array.isArray(object.extraComputations))throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.extraComputations: array expected");message.extraComputations=[];for(var i=0;i<object.extraComputations.length;++i)switch(object.extraComputations[i]){default:if(typeof object.extraComputations[i]==="number"){message.extraComputations[i]=object.extraComputations[i];break}case"EXTRA_COMPUTATION_UNSPECIFIED":case 0:message.extraComputations[i]=0;break;case"TOLLS":case 1:message.extraComputations[i]=1;break}}switch(object.trafficModel){default:if(typeof object.trafficModel==="number"){message.trafficModel=object.trafficModel;break}break;case"TRAFFIC_MODEL_UNSPECIFIED":case 0:message.trafficModel=0;break;case"BEST_GUESS":case 1:message.trafficModel=1;break;case"PESSIMISTIC":case 2:message.trafficModel=2;break;case"OPTIMISTIC":case 3:message.trafficModel=3;break}if(object.transitPreferences!=null){if(typeof object.transitPreferences!=="object")throw TypeError(".google.maps.routing.v2.ComputeRouteMatrixRequest.transitPreferences: object expected");message.transitPreferences=$root.google.maps.routing.v2.TransitPreferences.fromObject(object.transitPreferences,long+1)}return message};ComputeRouteMatrixRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.origins=[];object.destinations=[];object.extraComputations=[]}if(options.defaults){object.travelMode=options.enums===String?"TRAVEL_MODE_UNSPECIFIED":0;object.routingPreference=options.enums===String?"ROUTING_PREFERENCE_UNSPECIFIED":0;object.departureTime=null;object.languageCode="";object.units=options.enums===String?"UNITS_UNSPECIFIED":0;object.regionCode="";object.trafficModel=options.enums===String?"TRAFFIC_MODEL_UNSPECIFIED":0;object.arrivalTime=null;object.transitPreferences=null}if(message.origins&&message.origins.length){object.origins=[];for(var j=0;j<message.origins.length;++j)object.origins[j]=$root.google.maps.routing.v2.RouteMatrixOrigin.toObject(message.origins[j],options)}if(message.destinations&&message.destinations.length){object.destinations=[];for(var j=0;j<message.destinations.length;++j)object.destinations[j]=$root.google.maps.routing.v2.RouteMatrixDestination.toObject(message.destinations[j],options)}if(message.travelMode!=null&&message.hasOwnProperty("travelMode"))object.travelMode=options.enums===String?$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]===undefined?message.travelMode:$root.google.maps.routing.v2.RouteTravelMode[message.travelMode]:message.travelMode;if(message.routingPreference!=null&&message.hasOwnProperty("routingPreference"))object.routingPreference=options.enums===String?$root.google.maps.routing.v2.RoutingPreference[message.routingPreference]===undefined?message.routingPreference:$root.google.maps.routing.v2.RoutingPreference[message.routingPreference]:message.routingPreference;if(message.departureTime!=null&&message.hasOwnProperty("departureTime"))object.departureTime=$root.google.protobuf.Timestamp.toObject(message.departureTime,options);if(message.languageCode!=null&&message.hasOwnProperty("languageCode"))object.languageCode=message.languageCode;if(message.units!=null&&message.hasOwnProperty("units"))object.units=options.enums===String?$root.google.maps.routing.v2.Units[message.units]===undefined?message.units:$root.google.maps.routing.v2.Units[message.units]:message.units;if(message.extraComputations&&message.extraComputations.length){object.extraComputations=[];for(var j=0;j<message.extraComputations.length;++j)object.extraComputations[j]=options.enums===String?$root.google.maps.routing.v2.ComputeRouteMatrixRequest.ExtraComputation[message.extraComputations[j]]===undefined?message.extraComputations[j]:$root.google.maps.routing.v2.ComputeRouteMatrixRequest.ExtraComputation[message.extraComputations[j]]:message.extraComputations[j]}if(message.regionCode!=null&&message.hasOwnProperty("regionCode"))object.regionCode=message.regionCode;if(message.trafficModel!=null&&message.hasOwnProperty("trafficModel"))object.trafficModel=options.enums===String?$root.google.maps.routing.v2.TrafficModel[message.trafficModel]===undefined?message.trafficModel:$root.google.maps.routing.v2.TrafficModel[message.trafficModel]:message.trafficModel;if(message.arrivalTime!=null&&message.hasOwnProperty("arrivalTime"))object.arrivalTime=$root.google.protobuf.Timestamp.toObject(message.arrivalTime,options);if(message.transitPreferences!=null&&message.hasOwnProperty("transitPreferences"))object.transitPreferences=$root.google.maps.routing.v2.TransitPreferences.toObject(message.transitPreferences,options);return object};ComputeRouteMatrixRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ComputeRouteMatrixRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.ComputeRouteMatrixRequest"};ComputeRouteMatrixRequest.ExtraComputation=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="EXTRA_COMPUTATION_UNSPECIFIED"]=0;values[valuesById[1]="TOLLS"]=1;return values}();return ComputeRouteMatrixRequest}();v2.RouteMatrixOrigin=function(){function RouteMatrixOrigin(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteMatrixOrigin.prototype.waypoint=null;RouteMatrixOrigin.prototype.routeModifiers=null;RouteMatrixOrigin.create=function create(properties){return new RouteMatrixOrigin(properties)};RouteMatrixOrigin.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.waypoint!=null&&Object.hasOwnProperty.call(message,"waypoint"))$root.google.maps.routing.v2.Waypoint.encode(message.waypoint,writer.uint32(10).fork()).ldelim();if(message.routeModifiers!=null&&Object.hasOwnProperty.call(message,"routeModifiers"))$root.google.maps.routing.v2.RouteModifiers.encode(message.routeModifiers,writer.uint32(18).fork()).ldelim();return writer};RouteMatrixOrigin.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteMatrixOrigin.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteMatrixOrigin;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.waypoint=$root.google.maps.routing.v2.Waypoint.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.routeModifiers=$root.google.maps.routing.v2.RouteModifiers.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteMatrixOrigin.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteMatrixOrigin.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.waypoint!=null&&message.hasOwnProperty("waypoint")){var error=$root.google.maps.routing.v2.Waypoint.verify(message.waypoint,long+1);if(error)return"waypoint."+error}if(message.routeModifiers!=null&&message.hasOwnProperty("routeModifiers")){var error=$root.google.maps.routing.v2.RouteModifiers.verify(message.routeModifiers,long+1);if(error)return"routeModifiers."+error}return null};RouteMatrixOrigin.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteMatrixOrigin)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteMatrixOrigin;if(object.waypoint!=null){if(typeof object.waypoint!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixOrigin.waypoint: object expected");message.waypoint=$root.google.maps.routing.v2.Waypoint.fromObject(object.waypoint,long+1)}if(object.routeModifiers!=null){if(typeof object.routeModifiers!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixOrigin.routeModifiers: object expected");message.routeModifiers=$root.google.maps.routing.v2.RouteModifiers.fromObject(object.routeModifiers,long+1)}return message};RouteMatrixOrigin.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.waypoint=null;object.routeModifiers=null}if(message.waypoint!=null&&message.hasOwnProperty("waypoint"))object.waypoint=$root.google.maps.routing.v2.Waypoint.toObject(message.waypoint,options);if(message.routeModifiers!=null&&message.hasOwnProperty("routeModifiers"))object.routeModifiers=$root.google.maps.routing.v2.RouteModifiers.toObject(message.routeModifiers,options);return object};RouteMatrixOrigin.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteMatrixOrigin.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteMatrixOrigin"};return RouteMatrixOrigin}();v2.RouteMatrixDestination=function(){function RouteMatrixDestination(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteMatrixDestination.prototype.waypoint=null;RouteMatrixDestination.create=function create(properties){return new RouteMatrixDestination(properties)};RouteMatrixDestination.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.waypoint!=null&&Object.hasOwnProperty.call(message,"waypoint"))$root.google.maps.routing.v2.Waypoint.encode(message.waypoint,writer.uint32(10).fork()).ldelim();return writer};RouteMatrixDestination.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteMatrixDestination.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteMatrixDestination;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.waypoint=$root.google.maps.routing.v2.Waypoint.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteMatrixDestination.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteMatrixDestination.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.waypoint!=null&&message.hasOwnProperty("waypoint")){var error=$root.google.maps.routing.v2.Waypoint.verify(message.waypoint,long+1);if(error)return"waypoint."+error}return null};RouteMatrixDestination.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteMatrixDestination)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteMatrixDestination;if(object.waypoint!=null){if(typeof object.waypoint!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixDestination.waypoint: object expected");message.waypoint=$root.google.maps.routing.v2.Waypoint.fromObject(object.waypoint,long+1)}return message};RouteMatrixDestination.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.waypoint=null;if(message.waypoint!=null&&message.hasOwnProperty("waypoint"))object.waypoint=$root.google.maps.routing.v2.Waypoint.toObject(message.waypoint,options);return object};RouteMatrixDestination.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteMatrixDestination.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteMatrixDestination"};return RouteMatrixDestination}();v2.RouteMatrixElement=function(){function RouteMatrixElement(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RouteMatrixElement.prototype.originIndex=null;RouteMatrixElement.prototype.destinationIndex=null;RouteMatrixElement.prototype.status=null;RouteMatrixElement.prototype.condition=0;RouteMatrixElement.prototype.distanceMeters=0;RouteMatrixElement.prototype.duration=null;RouteMatrixElement.prototype.staticDuration=null;RouteMatrixElement.prototype.travelAdvisory=null;RouteMatrixElement.prototype.fallbackInfo=null;RouteMatrixElement.prototype.localizedValues=null;var $oneOfFields;Object.defineProperty(RouteMatrixElement.prototype,"_originIndex",{get:$util.oneOfGetter($oneOfFields=["originIndex"]),set:$util.oneOfSetter($oneOfFields)});Object.defineProperty(RouteMatrixElement.prototype,"_destinationIndex",{get:$util.oneOfGetter($oneOfFields=["destinationIndex"]),set:$util.oneOfSetter($oneOfFields)});RouteMatrixElement.create=function create(properties){return new RouteMatrixElement(properties)};RouteMatrixElement.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.originIndex!=null&&Object.hasOwnProperty.call(message,"originIndex"))writer.uint32(8).int32(message.originIndex);if(message.destinationIndex!=null&&Object.hasOwnProperty.call(message,"destinationIndex"))writer.uint32(16).int32(message.destinationIndex);if(message.status!=null&&Object.hasOwnProperty.call(message,"status"))$root.google.rpc.Status.encode(message.status,writer.uint32(26).fork()).ldelim();if(message.distanceMeters!=null&&Object.hasOwnProperty.call(message,"distanceMeters"))writer.uint32(32).int32(message.distanceMeters);if(message.duration!=null&&Object.hasOwnProperty.call(message,"duration"))$root.google.protobuf.Duration.encode(message.duration,writer.uint32(42).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.protobuf.Duration.encode(message.staticDuration,writer.uint32(50).fork()).ldelim();if(message.travelAdvisory!=null&&Object.hasOwnProperty.call(message,"travelAdvisory"))$root.google.maps.routing.v2.RouteTravelAdvisory.encode(message.travelAdvisory,writer.uint32(58).fork()).ldelim();if(message.fallbackInfo!=null&&Object.hasOwnProperty.call(message,"fallbackInfo"))$root.google.maps.routing.v2.FallbackInfo.encode(message.fallbackInfo,writer.uint32(66).fork()).ldelim();if(message.condition!=null&&Object.hasOwnProperty.call(message,"condition"))writer.uint32(72).int32(message.condition);if(message.localizedValues!=null&&Object.hasOwnProperty.call(message,"localizedValues"))$root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues.encode(message.localizedValues,writer.uint32(82).fork()).ldelim();return writer};RouteMatrixElement.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RouteMatrixElement.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteMatrixElement;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.originIndex=reader.int32();break}case 2:{message.destinationIndex=reader.int32();break}case 3:{message.status=$root.google.rpc.Status.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.condition=reader.int32();break}case 4:{message.distanceMeters=reader.int32();break}case 5:{message.duration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.staticDuration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.travelAdvisory=$root.google.maps.routing.v2.RouteTravelAdvisory.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.fallbackInfo=$root.google.maps.routing.v2.FallbackInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.localizedValues=$root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RouteMatrixElement.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RouteMatrixElement.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.originIndex!=null&&message.hasOwnProperty("originIndex")){properties._originIndex=1;if(!$util.isInteger(message.originIndex))return"originIndex: integer expected"}if(message.destinationIndex!=null&&message.hasOwnProperty("destinationIndex")){properties._destinationIndex=1;if(!$util.isInteger(message.destinationIndex))return"destinationIndex: integer expected"}if(message.status!=null&&message.hasOwnProperty("status")){var error=$root.google.rpc.Status.verify(message.status,long+1);if(error)return"status."+error}if(message.condition!=null&&message.hasOwnProperty("condition"))switch(message.condition){default:return"condition: enum value expected";case 0:case 1:case 2:break}if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))if(!$util.isInteger(message.distanceMeters))return"distanceMeters: integer expected";if(message.duration!=null&&message.hasOwnProperty("duration")){var error=$root.google.protobuf.Duration.verify(message.duration,long+1);if(error)return"duration."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.protobuf.Duration.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory")){var error=$root.google.maps.routing.v2.RouteTravelAdvisory.verify(message.travelAdvisory,long+1);if(error)return"travelAdvisory."+error}if(message.fallbackInfo!=null&&message.hasOwnProperty("fallbackInfo")){var error=$root.google.maps.routing.v2.FallbackInfo.verify(message.fallbackInfo,long+1);if(error)return"fallbackInfo."+error}if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues")){var error=$root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues.verify(message.localizedValues,long+1);if(error)return"localizedValues."+error}return null};RouteMatrixElement.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteMatrixElement)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteMatrixElement;if(object.originIndex!=null)message.originIndex=object.originIndex|0;if(object.destinationIndex!=null)message.destinationIndex=object.destinationIndex|0;if(object.status!=null){if(typeof object.status!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.status: object expected");message.status=$root.google.rpc.Status.fromObject(object.status,long+1)}switch(object.condition){default:if(typeof object.condition==="number"){message.condition=object.condition;break}break;case"ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED":case 0:message.condition=0;break;case"ROUTE_EXISTS":case 1:message.condition=1;break;case"ROUTE_NOT_FOUND":case 2:message.condition=2;break}if(object.distanceMeters!=null)message.distanceMeters=object.distanceMeters|0;if(object.duration!=null){if(typeof object.duration!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.duration: object expected");message.duration=$root.google.protobuf.Duration.fromObject(object.duration,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.staticDuration: object expected");message.staticDuration=$root.google.protobuf.Duration.fromObject(object.staticDuration,long+1)}if(object.travelAdvisory!=null){if(typeof object.travelAdvisory!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.travelAdvisory: object expected");message.travelAdvisory=$root.google.maps.routing.v2.RouteTravelAdvisory.fromObject(object.travelAdvisory,long+1)}if(object.fallbackInfo!=null){if(typeof object.fallbackInfo!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.fallbackInfo: object expected");message.fallbackInfo=$root.google.maps.routing.v2.FallbackInfo.fromObject(object.fallbackInfo,long+1)}if(object.localizedValues!=null){if(typeof object.localizedValues!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.localizedValues: object expected");message.localizedValues=$root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues.fromObject(object.localizedValues,long+1)}return message};RouteMatrixElement.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.status=null;object.distanceMeters=0;object.duration=null;object.staticDuration=null;object.travelAdvisory=null;object.fallbackInfo=null;object.condition=options.enums===String?"ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED":0;object.localizedValues=null}if(message.originIndex!=null&&message.hasOwnProperty("originIndex")){object.originIndex=message.originIndex;if(options.oneofs)object._originIndex="originIndex"}if(message.destinationIndex!=null&&message.hasOwnProperty("destinationIndex")){object.destinationIndex=message.destinationIndex;if(options.oneofs)object._destinationIndex="destinationIndex"}if(message.status!=null&&message.hasOwnProperty("status"))object.status=$root.google.rpc.Status.toObject(message.status,options);if(message.distanceMeters!=null&&message.hasOwnProperty("distanceMeters"))object.distanceMeters=message.distanceMeters;if(message.duration!=null&&message.hasOwnProperty("duration"))object.duration=$root.google.protobuf.Duration.toObject(message.duration,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.protobuf.Duration.toObject(message.staticDuration,options);if(message.travelAdvisory!=null&&message.hasOwnProperty("travelAdvisory"))object.travelAdvisory=$root.google.maps.routing.v2.RouteTravelAdvisory.toObject(message.travelAdvisory,options);if(message.fallbackInfo!=null&&message.hasOwnProperty("fallbackInfo"))object.fallbackInfo=$root.google.maps.routing.v2.FallbackInfo.toObject(message.fallbackInfo,options);if(message.condition!=null&&message.hasOwnProperty("condition"))object.condition=options.enums===String?$root.google.maps.routing.v2.RouteMatrixElementCondition[message.condition]===undefined?message.condition:$root.google.maps.routing.v2.RouteMatrixElementCondition[message.condition]:message.condition;if(message.localizedValues!=null&&message.hasOwnProperty("localizedValues"))object.localizedValues=$root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues.toObject(message.localizedValues,options);return object};RouteMatrixElement.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RouteMatrixElement.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteMatrixElement"};RouteMatrixElement.LocalizedValues=function(){function LocalizedValues(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}LocalizedValues.prototype.distance=null;LocalizedValues.prototype.duration=null;LocalizedValues.prototype.staticDuration=null;LocalizedValues.prototype.transitFare=null;LocalizedValues.create=function create(properties){return new LocalizedValues(properties)};LocalizedValues.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.distance!=null&&Object.hasOwnProperty.call(message,"distance"))$root.google.type.LocalizedText.encode(message.distance,writer.uint32(10).fork()).ldelim();if(message.duration!=null&&Object.hasOwnProperty.call(message,"duration"))$root.google.type.LocalizedText.encode(message.duration,writer.uint32(18).fork()).ldelim();if(message.staticDuration!=null&&Object.hasOwnProperty.call(message,"staticDuration"))$root.google.type.LocalizedText.encode(message.staticDuration,writer.uint32(26).fork()).ldelim();if(message.transitFare!=null&&Object.hasOwnProperty.call(message,"transitFare"))$root.google.type.LocalizedText.encode(message.transitFare,writer.uint32(34).fork()).ldelim();return writer};LocalizedValues.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};LocalizedValues.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.distance=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.duration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.staticDuration=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.transitFare=$root.google.type.LocalizedText.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};LocalizedValues.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LocalizedValues.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.distance!=null&&message.hasOwnProperty("distance")){var error=$root.google.type.LocalizedText.verify(message.distance,long+1);if(error)return"distance."+error}if(message.duration!=null&&message.hasOwnProperty("duration")){var error=$root.google.type.LocalizedText.verify(message.duration,long+1);if(error)return"duration."+error}if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration")){var error=$root.google.type.LocalizedText.verify(message.staticDuration,long+1);if(error)return"staticDuration."+error}if(message.transitFare!=null&&message.hasOwnProperty("transitFare")){var error=$root.google.type.LocalizedText.verify(message.transitFare,long+1);if(error)return"transitFare."+error}return null};LocalizedValues.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.RouteMatrixElement.LocalizedValues;if(object.distance!=null){if(typeof object.distance!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.LocalizedValues.distance: object expected");message.distance=$root.google.type.LocalizedText.fromObject(object.distance,long+1)}if(object.duration!=null){if(typeof object.duration!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.LocalizedValues.duration: object expected");message.duration=$root.google.type.LocalizedText.fromObject(object.duration,long+1)}if(object.staticDuration!=null){if(typeof object.staticDuration!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.LocalizedValues.staticDuration: object expected");message.staticDuration=$root.google.type.LocalizedText.fromObject(object.staticDuration,long+1)}if(object.transitFare!=null){if(typeof object.transitFare!=="object")throw TypeError(".google.maps.routing.v2.RouteMatrixElement.LocalizedValues.transitFare: object expected");message.transitFare=$root.google.type.LocalizedText.fromObject(object.transitFare,long+1)}return message};LocalizedValues.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.distance=null;object.duration=null;object.staticDuration=null;object.transitFare=null}if(message.distance!=null&&message.hasOwnProperty("distance"))object.distance=$root.google.type.LocalizedText.toObject(message.distance,options);if(message.duration!=null&&message.hasOwnProperty("duration"))object.duration=$root.google.type.LocalizedText.toObject(message.duration,options);if(message.staticDuration!=null&&message.hasOwnProperty("staticDuration"))object.staticDuration=$root.google.type.LocalizedText.toObject(message.staticDuration,options);if(message.transitFare!=null&&message.hasOwnProperty("transitFare"))object.transitFare=$root.google.type.LocalizedText.toObject(message.transitFare,options);return object};LocalizedValues.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LocalizedValues.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.RouteMatrixElement.LocalizedValues"};return LocalizedValues}();return RouteMatrixElement}();v2.RouteMatrixElementCondition=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED"]=0;values[valuesById[1]="ROUTE_EXISTS"]=1;values[valuesById[2]="ROUTE_NOT_FOUND"]=2;return values}();v2.RoutingPreference=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ROUTING_PREFERENCE_UNSPECIFIED"]=0;values[valuesById[1]="TRAFFIC_UNAWARE"]=1;values[valuesById[2]="TRAFFIC_AWARE"]=2;values[valuesById[3]="TRAFFIC_AWARE_OPTIMAL"]=3;return values}();v2.TrafficModel=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TRAFFIC_MODEL_UNSPECIFIED"]=0;values[valuesById[1]="BEST_GUESS"]=1;values[valuesById[2]="PESSIMISTIC"]=2;values[valuesById[3]="OPTIMISTIC"]=3;return values}();v2.TransitPreferences=function(){function TransitPreferences(properties){this.allowedTravelModes=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}TransitPreferences.prototype.allowedTravelModes=$util.emptyArray;TransitPreferences.prototype.routingPreference=0;TransitPreferences.create=function create(properties){return new TransitPreferences(properties)};TransitPreferences.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.allowedTravelModes!=null&&message.allowedTravelModes.length){writer.uint32(10).fork();for(var i=0;i<message.allowedTravelModes.length;++i)writer.int32(message.allowedTravelModes[i]);writer.ldelim()}if(message.routingPreference!=null&&Object.hasOwnProperty.call(message,"routingPreference"))writer.uint32(16).int32(message.routingPreference);return writer};TransitPreferences.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};TransitPreferences.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.TransitPreferences;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.allowedTravelModes&&message.allowedTravelModes.length))message.allowedTravelModes=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.allowedTravelModes.push(reader.int32())}else message.allowedTravelModes.push(reader.int32());break}case 2:{message.routingPreference=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};TransitPreferences.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransitPreferences.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.allowedTravelModes!=null&&message.hasOwnProperty("allowedTravelModes")){if(!Array.isArray(message.allowedTravelModes))return"allowedTravelModes: array expected";for(var i=0;i<message.allowedTravelModes.length;++i)switch(message.allowedTravelModes[i]){default:return"allowedTravelModes: enum value[] expected";case 0:case 1:case 2:case 3:case 4:case 5:break}}if(message.routingPreference!=null&&message.hasOwnProperty("routingPreference"))switch(message.routingPreference){default:return"routingPreference: enum value expected";case 0:case 1:case 2:break}return null};TransitPreferences.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.TransitPreferences)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.TransitPreferences;if(object.allowedTravelModes){if(!Array.isArray(object.allowedTravelModes))throw TypeError(".google.maps.routing.v2.TransitPreferences.allowedTravelModes: array expected");message.allowedTravelModes=[];for(var i=0;i<object.allowedTravelModes.length;++i)switch(object.allowedTravelModes[i]){default:if(typeof object.allowedTravelModes[i]==="number"){message.allowedTravelModes[i]=object.allowedTravelModes[i];break}case"TRANSIT_TRAVEL_MODE_UNSPECIFIED":case 0:message.allowedTravelModes[i]=0;break;case"BUS":case 1:message.allowedTravelModes[i]=1;break;case"SUBWAY":case 2:message.allowedTravelModes[i]=2;break;case"TRAIN":case 3:message.allowedTravelModes[i]=3;break;case"LIGHT_RAIL":case 4:message.allowedTravelModes[i]=4;break;case"RAIL":case 5:message.allowedTravelModes[i]=5;break}}switch(object.routingPreference){default:if(typeof object.routingPreference==="number"){message.routingPreference=object.routingPreference;break}break;case"TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED":case 0:message.routingPreference=0;break;case"LESS_WALKING":case 1:message.routingPreference=1;break;case"FEWER_TRANSFERS":case 2:message.routingPreference=2;break}return message};TransitPreferences.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.allowedTravelModes=[];if(options.defaults)object.routingPreference=options.enums===String?"TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED":0;if(message.allowedTravelModes&&message.allowedTravelModes.length){object.allowedTravelModes=[];for(var j=0;j<message.allowedTravelModes.length;++j)object.allowedTravelModes[j]=options.enums===String?$root.google.maps.routing.v2.TransitPreferences.TransitTravelMode[message.allowedTravelModes[j]]===undefined?message.allowedTravelModes[j]:$root.google.maps.routing.v2.TransitPreferences.TransitTravelMode[message.allowedTravelModes[j]]:message.allowedTravelModes[j]}if(message.routingPreference!=null&&message.hasOwnProperty("routingPreference"))object.routingPreference=options.enums===String?$root.google.maps.routing.v2.TransitPreferences.TransitRoutingPreference[message.routingPreference]===undefined?message.routingPreference:$root.google.maps.routing.v2.TransitPreferences.TransitRoutingPreference[message.routingPreference]:message.routingPreference;return object};TransitPreferences.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransitPreferences.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.TransitPreferences"};TransitPreferences.TransitTravelMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TRANSIT_TRAVEL_MODE_UNSPECIFIED"]=0;values[valuesById[1]="BUS"]=1;values[valuesById[2]="SUBWAY"]=2;values[valuesById[3]="TRAIN"]=3;values[valuesById[4]="LIGHT_RAIL"]=4;values[valuesById[5]="RAIL"]=5;return values}();TransitPreferences.TransitRoutingPreference=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED"]=0;values[valuesById[1]="LESS_WALKING"]=1;values[valuesById[2]="FEWER_TRANSFERS"]=2;return values}();return TransitPreferences}();v2.Units=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="UNITS_UNSPECIFIED"]=0;values[valuesById[1]="METRIC"]=1;values[valuesById[2]="IMPERIAL"]=2;return values}();v2.Waypoint=function(){function Waypoint(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Waypoint.prototype.location=null;Waypoint.prototype.placeId=null;Waypoint.prototype.address=null;Waypoint.prototype.navigationPointToken=null;Waypoint.prototype.via=false;Waypoint.prototype.vehicleStopover=false;Waypoint.prototype.sideOfRoad=false;var $oneOfFields;Object.defineProperty(Waypoint.prototype,"locationType",{get:$util.oneOfGetter($oneOfFields=["location","placeId","address","navigationPointToken"]),set:$util.oneOfSetter($oneOfFields)});Waypoint.create=function create(properties){return new Waypoint(properties)};Waypoint.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.location!=null&&Object.hasOwnProperty.call(message,"location"))$root.google.maps.routing.v2.Location.encode(message.location,writer.uint32(10).fork()).ldelim();if(message.placeId!=null&&Object.hasOwnProperty.call(message,"placeId"))writer.uint32(18).string(message.placeId);if(message.via!=null&&Object.hasOwnProperty.call(message,"via"))writer.uint32(24).bool(message.via);if(message.vehicleStopover!=null&&Object.hasOwnProperty.call(message,"vehicleStopover"))writer.uint32(32).bool(message.vehicleStopover);if(message.sideOfRoad!=null&&Object.hasOwnProperty.call(message,"sideOfRoad"))writer.uint32(40).bool(message.sideOfRoad);if(message.address!=null&&Object.hasOwnProperty.call(message,"address"))writer.uint32(58).string(message.address);if(message.navigationPointToken!=null&&Object.hasOwnProperty.call(message,"navigationPointToken"))writer.uint32(66).string(message.navigationPointToken);return writer};Waypoint.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Waypoint.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.maps.routing.v2.Waypoint;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.location=$root.google.maps.routing.v2.Location.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.placeId=reader.string();break}case 7:{message.address=reader.string();break}case 8:{message.navigationPointToken=reader.string();break}case 3:{message.via=reader.bool();break}case 4:{message.vehicleStopover=reader.bool();break}case 5:{message.sideOfRoad=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Waypoint.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Waypoint.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.location!=null&&message.hasOwnProperty("location")){properties.locationType=1;{var error=$root.google.maps.routing.v2.Location.verify(message.location,long+1);if(error)return"location."+error}}if(message.placeId!=null&&message.hasOwnProperty("placeId")){if(properties.locationType===1)return"locationType: multiple values";properties.locationType=1;if(!$util.isString(message.placeId))return"placeId: string expected"}if(message.address!=null&&message.hasOwnProperty("address")){if(properties.locationType===1)return"locationType: multiple values";properties.locationType=1;if(!$util.isString(message.address))return"address: string expected"}if(message.navigationPointToken!=null&&message.hasOwnProperty("navigationPointToken")){if(properties.locationType===1)return"locationType: multiple values";properties.locationType=1;if(!$util.isString(message.navigationPointToken))return"navigationPointToken: string expected"}if(message.via!=null&&message.hasOwnProperty("via"))if(typeof message.via!=="boolean")return"via: boolean expected";if(message.vehicleStopover!=null&&message.hasOwnProperty("vehicleStopover"))if(typeof message.vehicleStopover!=="boolean")return"vehicleStopover: boolean expected";if(message.sideOfRoad!=null&&message.hasOwnProperty("sideOfRoad"))if(typeof message.sideOfRoad!=="boolean")return"sideOfRoad: boolean expected";return null};Waypoint.fromObject=function fromObject(object,long){if(object instanceof $root.google.maps.routing.v2.Waypoint)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.maps.routing.v2.Waypoint;if(object.location!=null){if(typeof object.location!=="object")throw TypeError(".google.maps.routing.v2.Waypoint.location: object expected");message.location=$root.google.maps.routing.v2.Location.fromObject(object.location,long+1)}if(object.placeId!=null)message.placeId=String(object.placeId);if(object.address!=null)message.address=String(object.address);if(object.navigationPointToken!=null)message.navigationPointToken=String(object.navigationPointToken);if(object.via!=null)message.via=Boolean(object.via);if(object.vehicleStopover!=null)message.vehicleStopover=Boolean(object.vehicleStopover);if(object.sideOfRoad!=null)message.sideOfRoad=Boolean(object.sideOfRoad);return message};Waypoint.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.via=false;object.vehicleStopover=false;object.sideOfRoad=false}if(message.location!=null&&message.hasOwnProperty("location")){object.location=$root.google.maps.routing.v2.Location.toObject(message.location,options);if(options.oneofs)object.locationType="location"}if(message.placeId!=null&&message.hasOwnProperty("placeId")){object.placeId=message.placeId;if(options.oneofs)object.locationType="placeId"}if(message.via!=null&&message.hasOwnProperty("via"))object.via=message.via;if(message.vehicleStopover!=null&&message.hasOwnProperty("vehicleStopover"))object.vehicleStopover=message.vehicleStopover;if(message.sideOfRoad!=null&&message.hasOwnProperty("sideOfRoad"))object.sideOfRoad=message.sideOfRoad;if(message.address!=null&&message.hasOwnProperty("address")){object.address=message.address;if(options.oneofs)object.locationType="address"}if(message.navigationPointToken!=null&&message.hasOwnProperty("navigationPointToken")){object.navigationPointToken=message.navigationPointToken;if(options.oneofs)object.locationType="navigationPointToken"}return object};Waypoint.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Waypoint.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.maps.routing.v2.Waypoint"};return Waypoint}();return v2}();return routing}();return maps}();google.rpc=function(){var rpc={};rpc.Status=function(){function Status(properties){this.details=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Status.prototype.code=0;Status.prototype.message="";Status.prototype.details=$util.emptyArray;Status.create=function create(properties){return new Status(properties)};Status.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.code!=null&&Object.hasOwnProperty.call(message,"code"))writer.uint32(8).int32(message.code);if(message.message!=null&&Object.hasOwnProperty.call(message,"message"))writer.uint32(18).string(message.message);if(message.details!=null&&message.details.length)for(var i=0;i<message.details.length;++i)$root.google.protobuf.Any.encode(message.details[i],writer.uint32(26).fork()).ldelim();return writer};Status.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Status.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.rpc.Status;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.code=reader.int32();break}case 2:{message.message=reader.string();break}case 3:{if(!(message.details&&message.details.length))message.details=[];message.details.push($root.google.protobuf.Any.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};Status.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Status.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.code!=null&&message.hasOwnProperty("code"))if(!$util.isInteger(message.code))return"code: integer expected";if(message.message!=null&&message.hasOwnProperty("message"))if(!$util.isString(message.message))return"message: string expected";if(message.details!=null&&message.hasOwnProperty("details")){if(!Array.isArray(message.details))return"details: array expected";for(var i=0;i<message.details.length;++i){var error=$root.google.protobuf.Any.verify(message.details[i],long+1);if(error)return"details."+error}}return null};Status.fromObject=function fromObject(object,long){if(object instanceof $root.google.rpc.Status)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.rpc.Status;if(object.code!=null)message.code=object.code|0;if(object.message!=null)message.message=String(object.message);if(object.details){if(!Array.isArray(object.details))throw TypeError(".google.rpc.Status.details: array expected");message.details=[];for(var i=0;i<object.details.length;++i){if(typeof object.details[i]!=="object")throw TypeError(".google.rpc.Status.details: object expected");message.details[i]=$root.google.protobuf.Any.fromObject(object.details[i],long+1)}}return message};Status.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.details=[];if(options.defaults){object.code=0;object.message=""}if(message.code!=null&&message.hasOwnProperty("code"))object.code=message.code;if(message.message!=null&&message.hasOwnProperty("message"))object.message=message.message;if(message.details&&message.details.length){object.details=[];for(var j=0;j<message.details.length;++j)object.details[j]=$root.google.protobuf.Any.toObject(message.details[j],options)}return object};Status.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Status.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.rpc.Status"};return Status}();return rpc}();google.api=function(){var api={};api.FieldBehavior=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="FIELD_BEHAVIOR_UNSPECIFIED"]=0;values[valuesById[1]="OPTIONAL"]=1;values[valuesById[2]="REQUIRED"]=2;values[valuesById[3]="OUTPUT_ONLY"]=3;values[valuesById[4]="INPUT_ONLY"]=4;values[valuesById[5]="IMMUTABLE"]=5;values[valuesById[6]="UNORDERED_LIST"]=6;values[valuesById[7]="NON_EMPTY_DEFAULT"]=7;values[valuesById[8]="IDENTIFIER"]=8;return values}();api.Http=function(){function Http(properties){this.rules=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Http.prototype.rules=$util.emptyArray;Http.prototype.fullyDecodeReservedExpansion=false;Http.create=function create(properties){return new Http(properties)};Http.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.rules!=null&&message.rules.length)for(var i=0;i<message.rules.length;++i)$root.google.api.HttpRule.encode(message.rules[i],writer.uint32(10).fork()).ldelim();if(message.fullyDecodeReservedExpansion!=null&&Object.hasOwnProperty.call(message,"fullyDecodeReservedExpansion"))writer.uint32(16).bool(message.fullyDecodeReservedExpansion);return writer};Http.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Http.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.Http;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.rules&&message.rules.length))message.rules=[];message.rules.push($root.google.api.HttpRule.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.fullyDecodeReservedExpansion=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Http.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Http.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.rules!=null&&message.hasOwnProperty("rules")){if(!Array.isArray(message.rules))return"rules: array expected";for(var i=0;i<message.rules.length;++i){var error=$root.google.api.HttpRule.verify(message.rules[i],long+1);if(error)return"rules."+error}}if(message.fullyDecodeReservedExpansion!=null&&message.hasOwnProperty("fullyDecodeReservedExpansion"))if(typeof message.fullyDecodeReservedExpansion!=="boolean")return"fullyDecodeReservedExpansion: boolean expected";return null};Http.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.Http)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.Http;if(object.rules){if(!Array.isArray(object.rules))throw TypeError(".google.api.Http.rules: array expected");message.rules=[];for(var i=0;i<object.rules.length;++i){if(typeof object.rules[i]!=="object")throw TypeError(".google.api.Http.rules: object expected");message.rules[i]=$root.google.api.HttpRule.fromObject(object.rules[i],long+1)}}if(object.fullyDecodeReservedExpansion!=null)message.fullyDecodeReservedExpansion=Boolean(object.fullyDecodeReservedExpansion);return message};Http.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.rules=[];if(options.defaults)object.fullyDecodeReservedExpansion=false;if(message.rules&&message.rules.length){object.rules=[];for(var j=0;j<message.rules.length;++j)object.rules[j]=$root.google.api.HttpRule.toObject(message.rules[j],options)}if(message.fullyDecodeReservedExpansion!=null&&message.hasOwnProperty("fullyDecodeReservedExpansion"))object.fullyDecodeReservedExpansion=message.fullyDecodeReservedExpansion;return object};Http.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Http.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.Http"};return Http}();api.HttpRule=function(){function HttpRule(properties){this.additionalBindings=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}HttpRule.prototype.selector="";HttpRule.prototype.get=null;HttpRule.prototype.put=null;HttpRule.prototype.post=null;HttpRule.prototype["delete"]=null;HttpRule.prototype.patch=null;HttpRule.prototype.custom=null;HttpRule.prototype.body="";HttpRule.prototype.responseBody="";HttpRule.prototype.additionalBindings=$util.emptyArray;var $oneOfFields;Object.defineProperty(HttpRule.prototype,"pattern",{get:$util.oneOfGetter($oneOfFields=["get","put","post","delete","patch","custom"]),set:$util.oneOfSetter($oneOfFields)});HttpRule.create=function create(properties){return new HttpRule(properties)};HttpRule.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.selector!=null&&Object.hasOwnProperty.call(message,"selector"))writer.uint32(10).string(message.selector);if(message.get!=null&&Object.hasOwnProperty.call(message,"get"))writer.uint32(18).string(message.get);if(message.put!=null&&Object.hasOwnProperty.call(message,"put"))writer.uint32(26).string(message.put);if(message.post!=null&&Object.hasOwnProperty.call(message,"post"))writer.uint32(34).string(message.post);if(message["delete"]!=null&&Object.hasOwnProperty.call(message,"delete"))writer.uint32(42).string(message["delete"]);if(message.patch!=null&&Object.hasOwnProperty.call(message,"patch"))writer.uint32(50).string(message.patch);if(message.body!=null&&Object.hasOwnProperty.call(message,"body"))writer.uint32(58).string(message.body);if(message.custom!=null&&Object.hasOwnProperty.call(message,"custom"))$root.google.api.CustomHttpPattern.encode(message.custom,writer.uint32(66).fork()).ldelim();if(message.additionalBindings!=null&&message.additionalBindings.length)for(var i=0;i<message.additionalBindings.length;++i)$root.google.api.HttpRule.encode(message.additionalBindings[i],writer.uint32(90).fork()).ldelim();if(message.responseBody!=null&&Object.hasOwnProperty.call(message,"responseBody"))writer.uint32(98).string(message.responseBody);return writer};HttpRule.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};HttpRule.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.HttpRule;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.selector=reader.string();break}case 2:{message.get=reader.string();break}case 3:{message.put=reader.string();break}case 4:{message.post=reader.string();break}case 5:{message["delete"]=reader.string();break}case 6:{message.patch=reader.string();break}case 8:{message.custom=$root.google.api.CustomHttpPattern.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.body=reader.string();break}case 12:{message.responseBody=reader.string();break}case 11:{if(!(message.additionalBindings&&message.additionalBindings.length))message.additionalBindings=[];message.additionalBindings.push($root.google.api.HttpRule.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};HttpRule.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};HttpRule.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.selector!=null&&message.hasOwnProperty("selector"))if(!$util.isString(message.selector))return"selector: string expected";if(message.get!=null&&message.hasOwnProperty("get")){properties.pattern=1;if(!$util.isString(message.get))return"get: string expected"}if(message.put!=null&&message.hasOwnProperty("put")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message.put))return"put: string expected"}if(message.post!=null&&message.hasOwnProperty("post")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message.post))return"post: string expected"}if(message["delete"]!=null&&message.hasOwnProperty("delete")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message["delete"]))return"delete: string expected"}if(message.patch!=null&&message.hasOwnProperty("patch")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message.patch))return"patch: string expected"}if(message.custom!=null&&message.hasOwnProperty("custom")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;{var error=$root.google.api.CustomHttpPattern.verify(message.custom,long+1);if(error)return"custom."+error}}if(message.body!=null&&message.hasOwnProperty("body"))if(!$util.isString(message.body))return"body: string expected";if(message.responseBody!=null&&message.hasOwnProperty("responseBody"))if(!$util.isString(message.responseBody))return"responseBody: string expected";if(message.additionalBindings!=null&&message.hasOwnProperty("additionalBindings")){if(!Array.isArray(message.additionalBindings))return"additionalBindings: array expected";for(var i=0;i<message.additionalBindings.length;++i){var error=$root.google.api.HttpRule.verify(message.additionalBindings[i],long+1);if(error)return"additionalBindings."+error}}return null};HttpRule.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.HttpRule)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.HttpRule;if(object.selector!=null)message.selector=String(object.selector);if(object.get!=null)message.get=String(object.get);if(object.put!=null)message.put=String(object.put);if(object.post!=null)message.post=String(object.post);if(object["delete"]!=null)message["delete"]=String(object["delete"]);if(object.patch!=null)message.patch=String(object.patch);if(object.custom!=null){if(typeof object.custom!=="object")throw TypeError(".google.api.HttpRule.custom: object expected");message.custom=$root.google.api.CustomHttpPattern.fromObject(object.custom,long+1)}if(object.body!=null)message.body=String(object.body);if(object.responseBody!=null)message.responseBody=String(object.responseBody);if(object.additionalBindings){if(!Array.isArray(object.additionalBindings))throw TypeError(".google.api.HttpRule.additionalBindings: array expected");message.additionalBindings=[];for(var i=0;i<object.additionalBindings.length;++i){if(typeof object.additionalBindings[i]!=="object")throw TypeError(".google.api.HttpRule.additionalBindings: object expected");message.additionalBindings[i]=$root.google.api.HttpRule.fromObject(object.additionalBindings[i],long+1)}}return message};HttpRule.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.additionalBindings=[];if(options.defaults){object.selector="";object.body="";object.responseBody=""}if(message.selector!=null&&message.hasOwnProperty("selector"))object.selector=message.selector;if(message.get!=null&&message.hasOwnProperty("get")){object.get=message.get;if(options.oneofs)object.pattern="get"}if(message.put!=null&&message.hasOwnProperty("put")){object.put=message.put;if(options.oneofs)object.pattern="put"}if(message.post!=null&&message.hasOwnProperty("post")){object.post=message.post;if(options.oneofs)object.pattern="post"}if(message["delete"]!=null&&message.hasOwnProperty("delete")){object["delete"]=message["delete"];if(options.oneofs)object.pattern="delete"}if(message.patch!=null&&message.hasOwnProperty("patch")){object.patch=message.patch;if(options.oneofs)object.pattern="patch"}if(message.body!=null&&message.hasOwnProperty("body"))object.body=message.body;if(message.custom!=null&&message.hasOwnProperty("custom")){object.custom=$root.google.api.CustomHttpPattern.toObject(message.custom,options);if(options.oneofs)object.pattern="custom"}if(message.additionalBindings&&message.additionalBindings.length){object.additionalBindings=[];for(var j=0;j<message.additionalBindings.length;++j)object.additionalBindings[j]=$root.google.api.HttpRule.toObject(message.additionalBindings[j],options)}if(message.responseBody!=null&&message.hasOwnProperty("responseBody"))object.responseBody=message.responseBody;return object};HttpRule.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};HttpRule.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.HttpRule"};return HttpRule}();api.CustomHttpPattern=function(){function CustomHttpPattern(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}CustomHttpPattern.prototype.kind="";CustomHttpPattern.prototype.path="";CustomHttpPattern.create=function create(properties){return new CustomHttpPattern(properties)};CustomHttpPattern.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.kind!=null&&Object.hasOwnProperty.call(message,"kind"))writer.uint32(10).string(message.kind);if(message.path!=null&&Object.hasOwnProperty.call(message,"path"))writer.uint32(18).string(message.path);return writer};CustomHttpPattern.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};CustomHttpPattern.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.CustomHttpPattern;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.kind=reader.string();break}case 2:{message.path=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};CustomHttpPattern.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CustomHttpPattern.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.kind!=null&&message.hasOwnProperty("kind"))if(!$util.isString(message.kind))return"kind: string expected";if(message.path!=null&&message.hasOwnProperty("path"))if(!$util.isString(message.path))return"path: string expected";return null};CustomHttpPattern.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.CustomHttpPattern)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.CustomHttpPattern;if(object.kind!=null)message.kind=String(object.kind);if(object.path!=null)message.path=String(object.path);return message};CustomHttpPattern.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.kind="";object.path=""}if(message.kind!=null&&message.hasOwnProperty("kind"))object.kind=message.kind;if(message.path!=null&&message.hasOwnProperty("path"))object.path=message.path;return object};CustomHttpPattern.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CustomHttpPattern.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.CustomHttpPattern"};return CustomHttpPattern}();api.CommonLanguageSettings=function(){function CommonLanguageSettings(properties){this.destinations=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}CommonLanguageSettings.prototype.referenceDocsUri="";CommonLanguageSettings.prototype.destinations=$util.emptyArray;CommonLanguageSettings.prototype.selectiveGapicGeneration=null;CommonLanguageSettings.create=function create(properties){return new CommonLanguageSettings(properties)};CommonLanguageSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.referenceDocsUri!=null&&Object.hasOwnProperty.call(message,"referenceDocsUri"))writer.uint32(10).string(message.referenceDocsUri);if(message.destinations!=null&&message.destinations.length){writer.uint32(18).fork();for(var i=0;i<message.destinations.length;++i)writer.int32(message.destinations[i]);writer.ldelim()}if(message.selectiveGapicGeneration!=null&&Object.hasOwnProperty.call(message,"selectiveGapicGeneration"))$root.google.api.SelectiveGapicGeneration.encode(message.selectiveGapicGeneration,writer.uint32(26).fork()).ldelim();return writer};CommonLanguageSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};CommonLanguageSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.CommonLanguageSettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.referenceDocsUri=reader.string();break}case 2:{if(!(message.destinations&&message.destinations.length))message.destinations=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos<end2)message.destinations.push(reader.int32())}else message.destinations.push(reader.int32());break}case 3:{message.selectiveGapicGeneration=$root.google.api.SelectiveGapicGeneration.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CommonLanguageSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CommonLanguageSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.referenceDocsUri!=null&&message.hasOwnProperty("referenceDocsUri"))if(!$util.isString(message.referenceDocsUri))return"referenceDocsUri: string expected";if(message.destinations!=null&&message.hasOwnProperty("destinations")){if(!Array.isArray(message.destinations))return"destinations: array expected";for(var i=0;i<message.destinations.length;++i)switch(message.destinations[i]){default:return"destinations: enum value[] expected";case 0:case 10:case 20:break}}if(message.selectiveGapicGeneration!=null&&message.hasOwnProperty("selectiveGapicGeneration")){var error=$root.google.api.SelectiveGapicGeneration.verify(message.selectiveGapicGeneration,long+1);if(error)return"selectiveGapicGeneration."+error}return null};CommonLanguageSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.CommonLanguageSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.CommonLanguageSettings;if(object.referenceDocsUri!=null)message.referenceDocsUri=String(object.referenceDocsUri);if(object.destinations){if(!Array.isArray(object.destinations))throw TypeError(".google.api.CommonLanguageSettings.destinations: array expected");message.destinations=[];for(var i=0;i<object.destinations.length;++i)switch(object.destinations[i]){default:if(typeof object.destinations[i]==="number"){message.destinations[i]=object.destinations[i];break}case"CLIENT_LIBRARY_DESTINATION_UNSPECIFIED":case 0:message.destinations[i]=0;break;case"GITHUB":case 10:message.destinations[i]=10;break;case"PACKAGE_MANAGER":case 20:message.destinations[i]=20;break}}if(object.selectiveGapicGeneration!=null){if(typeof object.selectiveGapicGeneration!=="object")throw TypeError(".google.api.CommonLanguageSettings.selectiveGapicGeneration: object expected");message.selectiveGapicGeneration=$root.google.api.SelectiveGapicGeneration.fromObject(object.selectiveGapicGeneration,long+1)}return message};CommonLanguageSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.destinations=[];if(options.defaults){object.referenceDocsUri="";object.selectiveGapicGeneration=null}if(message.referenceDocsUri!=null&&message.hasOwnProperty("referenceDocsUri"))object.referenceDocsUri=message.referenceDocsUri;if(message.destinations&&message.destinations.length){object.destinations=[];for(var j=0;j<message.destinations.length;++j)object.destinations[j]=options.enums===String?$root.google.api.ClientLibraryDestination[message.destinations[j]]===undefined?message.destinations[j]:$root.google.api.ClientLibraryDestination[message.destinations[j]]:message.destinations[j]}if(message.selectiveGapicGeneration!=null&&message.hasOwnProperty("selectiveGapicGeneration"))object.selectiveGapicGeneration=$root.google.api.SelectiveGapicGeneration.toObject(message.selectiveGapicGeneration,options);return object};CommonLanguageSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CommonLanguageSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.CommonLanguageSettings"};return CommonLanguageSettings}();api.ClientLibrarySettings=function(){function ClientLibrarySettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ClientLibrarySettings.prototype.version="";ClientLibrarySettings.prototype.launchStage=0;ClientLibrarySettings.prototype.restNumericEnums=false;ClientLibrarySettings.prototype.javaSettings=null;ClientLibrarySettings.prototype.cppSettings=null;ClientLibrarySettings.prototype.phpSettings=null;ClientLibrarySettings.prototype.pythonSettings=null;ClientLibrarySettings.prototype.nodeSettings=null;ClientLibrarySettings.prototype.dotnetSettings=null;ClientLibrarySettings.prototype.rubySettings=null;ClientLibrarySettings.prototype.goSettings=null;ClientLibrarySettings.create=function create(properties){return new ClientLibrarySettings(properties)};ClientLibrarySettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.version!=null&&Object.hasOwnProperty.call(message,"version"))writer.uint32(10).string(message.version);if(message.launchStage!=null&&Object.hasOwnProperty.call(message,"launchStage"))writer.uint32(16).int32(message.launchStage);if(message.restNumericEnums!=null&&Object.hasOwnProperty.call(message,"restNumericEnums"))writer.uint32(24).bool(message.restNumericEnums);if(message.javaSettings!=null&&Object.hasOwnProperty.call(message,"javaSettings"))$root.google.api.JavaSettings.encode(message.javaSettings,writer.uint32(170).fork()).ldelim();if(message.cppSettings!=null&&Object.hasOwnProperty.call(message,"cppSettings"))$root.google.api.CppSettings.encode(message.cppSettings,writer.uint32(178).fork()).ldelim();if(message.phpSettings!=null&&Object.hasOwnProperty.call(message,"phpSettings"))$root.google.api.PhpSettings.encode(message.phpSettings,writer.uint32(186).fork()).ldelim();if(message.pythonSettings!=null&&Object.hasOwnProperty.call(message,"pythonSettings"))$root.google.api.PythonSettings.encode(message.pythonSettings,writer.uint32(194).fork()).ldelim();if(message.nodeSettings!=null&&Object.hasOwnProperty.call(message,"nodeSettings"))$root.google.api.NodeSettings.encode(message.nodeSettings,writer.uint32(202).fork()).ldelim();if(message.dotnetSettings!=null&&Object.hasOwnProperty.call(message,"dotnetSettings"))$root.google.api.DotnetSettings.encode(message.dotnetSettings,writer.uint32(210).fork()).ldelim();if(message.rubySettings!=null&&Object.hasOwnProperty.call(message,"rubySettings"))$root.google.api.RubySettings.encode(message.rubySettings,writer.uint32(218).fork()).ldelim();if(message.goSettings!=null&&Object.hasOwnProperty.call(message,"goSettings"))$root.google.api.GoSettings.encode(message.goSettings,writer.uint32(226).fork()).ldelim();return writer};ClientLibrarySettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ClientLibrarySettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.ClientLibrarySettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.version=reader.string();break}case 2:{message.launchStage=reader.int32();break}case 3:{message.restNumericEnums=reader.bool();break}case 21:{message.javaSettings=$root.google.api.JavaSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 22:{message.cppSettings=$root.google.api.CppSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 23:{message.phpSettings=$root.google.api.PhpSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 24:{message.pythonSettings=$root.google.api.PythonSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 25:{message.nodeSettings=$root.google.api.NodeSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 26:{message.dotnetSettings=$root.google.api.DotnetSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 27:{message.rubySettings=$root.google.api.RubySettings.decode(reader,reader.uint32(),undefined,long+1);break}case 28:{message.goSettings=$root.google.api.GoSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ClientLibrarySettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ClientLibrarySettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.version!=null&&message.hasOwnProperty("version"))if(!$util.isString(message.version))return"version: string expected";if(message.launchStage!=null&&message.hasOwnProperty("launchStage"))switch(message.launchStage){default:return"launchStage: enum value expected";case 0:case 6:case 7:case 1:case 2:case 3:case 4:case 5:break}if(message.restNumericEnums!=null&&message.hasOwnProperty("restNumericEnums"))if(typeof message.restNumericEnums!=="boolean")return"restNumericEnums: boolean expected";if(message.javaSettings!=null&&message.hasOwnProperty("javaSettings")){var error=$root.google.api.JavaSettings.verify(message.javaSettings,long+1);if(error)return"javaSettings."+error}if(message.cppSettings!=null&&message.hasOwnProperty("cppSettings")){var error=$root.google.api.CppSettings.verify(message.cppSettings,long+1);if(error)return"cppSettings."+error}if(message.phpSettings!=null&&message.hasOwnProperty("phpSettings")){var error=$root.google.api.PhpSettings.verify(message.phpSettings,long+1);if(error)return"phpSettings."+error}if(message.pythonSettings!=null&&message.hasOwnProperty("pythonSettings")){var error=$root.google.api.PythonSettings.verify(message.pythonSettings,long+1);if(error)return"pythonSettings."+error}if(message.nodeSettings!=null&&message.hasOwnProperty("nodeSettings")){var error=$root.google.api.NodeSettings.verify(message.nodeSettings,long+1);if(error)return"nodeSettings."+error}if(message.dotnetSettings!=null&&message.hasOwnProperty("dotnetSettings")){var error=$root.google.api.DotnetSettings.verify(message.dotnetSettings,long+1);if(error)return"dotnetSettings."+error}if(message.rubySettings!=null&&message.hasOwnProperty("rubySettings")){var error=$root.google.api.RubySettings.verify(message.rubySettings,long+1);if(error)return"rubySettings."+error}if(message.goSettings!=null&&message.hasOwnProperty("goSettings")){var error=$root.google.api.GoSettings.verify(message.goSettings,long+1);if(error)return"goSettings."+error}return null};ClientLibrarySettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.ClientLibrarySettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.ClientLibrarySettings;if(object.version!=null)message.version=String(object.version);switch(object.launchStage){default:if(typeof object.launchStage==="number"){message.launchStage=object.launchStage;break}break;case"LAUNCH_STAGE_UNSPECIFIED":case 0:message.launchStage=0;break;case"UNIMPLEMENTED":case 6:message.launchStage=6;break;case"PRELAUNCH":case 7:message.launchStage=7;break;case"EARLY_ACCESS":case 1:message.launchStage=1;break;case"ALPHA":case 2:message.launchStage=2;break;case"BETA":case 3:message.launchStage=3;break;case"GA":case 4:message.launchStage=4;break;case"DEPRECATED":case 5:message.launchStage=5;break}if(object.restNumericEnums!=null)message.restNumericEnums=Boolean(object.restNumericEnums);if(object.javaSettings!=null){if(typeof object.javaSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.javaSettings: object expected");message.javaSettings=$root.google.api.JavaSettings.fromObject(object.javaSettings,long+1)}if(object.cppSettings!=null){if(typeof object.cppSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.cppSettings: object expected");message.cppSettings=$root.google.api.CppSettings.fromObject(object.cppSettings,long+1)}if(object.phpSettings!=null){if(typeof object.phpSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.phpSettings: object expected");message.phpSettings=$root.google.api.PhpSettings.fromObject(object.phpSettings,long+1)}if(object.pythonSettings!=null){if(typeof object.pythonSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.pythonSettings: object expected");message.pythonSettings=$root.google.api.PythonSettings.fromObject(object.pythonSettings,long+1)}if(object.nodeSettings!=null){if(typeof object.nodeSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.nodeSettings: object expected");message.nodeSettings=$root.google.api.NodeSettings.fromObject(object.nodeSettings,long+1)}if(object.dotnetSettings!=null){if(typeof object.dotnetSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.dotnetSettings: object expected");message.dotnetSettings=$root.google.api.DotnetSettings.fromObject(object.dotnetSettings,long+1)}if(object.rubySettings!=null){if(typeof object.rubySettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.rubySettings: object expected");message.rubySettings=$root.google.api.RubySettings.fromObject(object.rubySettings,long+1)}if(object.goSettings!=null){if(typeof object.goSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.goSettings: object expected");message.goSettings=$root.google.api.GoSettings.fromObject(object.goSettings,long+1)}return message};ClientLibrarySettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.version="";object.launchStage=options.enums===String?"LAUNCH_STAGE_UNSPECIFIED":0;object.restNumericEnums=false;object.javaSettings=null;object.cppSettings=null;object.phpSettings=null;object.pythonSettings=null;object.nodeSettings=null;object.dotnetSettings=null;object.rubySettings=null;object.goSettings=null}if(message.version!=null&&message.hasOwnProperty("version"))object.version=message.version;if(message.launchStage!=null&&message.hasOwnProperty("launchStage"))object.launchStage=options.enums===String?$root.google.api.LaunchStage[message.launchStage]===undefined?message.launchStage:$root.google.api.LaunchStage[message.launchStage]:message.launchStage;if(message.restNumericEnums!=null&&message.hasOwnProperty("restNumericEnums"))object.restNumericEnums=message.restNumericEnums;if(message.javaSettings!=null&&message.hasOwnProperty("javaSettings"))object.javaSettings=$root.google.api.JavaSettings.toObject(message.javaSettings,options);if(message.cppSettings!=null&&message.hasOwnProperty("cppSettings"))object.cppSettings=$root.google.api.CppSettings.toObject(message.cppSettings,options);if(message.phpSettings!=null&&message.hasOwnProperty("phpSettings"))object.phpSettings=$root.google.api.PhpSettings.toObject(message.phpSettings,options);if(message.pythonSettings!=null&&message.hasOwnProperty("pythonSettings"))object.pythonSettings=$root.google.api.PythonSettings.toObject(message.pythonSettings,options);if(message.nodeSettings!=null&&message.hasOwnProperty("nodeSettings"))object.nodeSettings=$root.google.api.NodeSettings.toObject(message.nodeSettings,options);if(message.dotnetSettings!=null&&message.hasOwnProperty("dotnetSettings"))object.dotnetSettings=$root.google.api.DotnetSettings.toObject(message.dotnetSettings,options);if(message.rubySettings!=null&&message.hasOwnProperty("rubySettings"))object.rubySettings=$root.google.api.RubySettings.toObject(message.rubySettings,options);if(message.goSettings!=null&&message.hasOwnProperty("goSettings"))object.goSettings=$root.google.api.GoSettings.toObject(message.goSettings,options);return object};ClientLibrarySettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ClientLibrarySettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.ClientLibrarySettings"};return ClientLibrarySettings}();api.Publishing=function(){function Publishing(properties){this.methodSettings=[];this.codeownerGithubTeams=[];this.librarySettings=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}Publishing.prototype.methodSettings=$util.emptyArray;Publishing.prototype.newIssueUri="";Publishing.prototype.documentationUri="";Publishing.prototype.apiShortName="";Publishing.prototype.githubLabel="";Publishing.prototype.codeownerGithubTeams=$util.emptyArray;Publishing.prototype.docTagPrefix="";Publishing.prototype.organization=0;Publishing.prototype.librarySettings=$util.emptyArray;Publishing.prototype.protoReferenceDocumentationUri="";Publishing.prototype.restReferenceDocumentationUri="";Publishing.create=function create(properties){return new Publishing(properties)};Publishing.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.methodSettings!=null&&message.methodSettings.length)for(var i=0;i<message.methodSettings.length;++i)$root.google.api.MethodSettings.encode(message.methodSettings[i],writer.uint32(18).fork()).ldelim();if(message.newIssueUri!=null&&Object.hasOwnProperty.call(message,"newIssueUri"))writer.uint32(810).string(message.newIssueUri);if(message.documentationUri!=null&&Object.hasOwnProperty.call(message,"documentationUri"))writer.uint32(818).string(message.documentationUri);if(message.apiShortName!=null&&Object.hasOwnProperty.call(message,"apiShortName"))writer.uint32(826).string(message.apiShortName);if(message.githubLabel!=null&&Object.hasOwnProperty.call(message,"githubLabel"))writer.uint32(834).string(message.githubLabel);if(message.codeownerGithubTeams!=null&&message.codeownerGithubTeams.length)for(var i=0;i<message.codeownerGithubTeams.length;++i)writer.uint32(842).string(message.codeownerGithubTeams[i]);if(message.docTagPrefix!=null&&Object.hasOwnProperty.call(message,"docTagPrefix"))writer.uint32(850).string(message.docTagPrefix);if(message.organization!=null&&Object.hasOwnProperty.call(message,"organization"))writer.uint32(856).int32(message.organization);if(message.librarySettings!=null&&message.librarySettings.length)for(var i=0;i<message.librarySettings.length;++i)$root.google.api.ClientLibrarySettings.encode(message.librarySettings[i],writer.uint32(874).fork()).ldelim();if(message.protoReferenceDocumentationUri!=null&&Object.hasOwnProperty.call(message,"protoReferenceDocumentationUri"))writer.uint32(882).string(message.protoReferenceDocumentationUri);if(message.restReferenceDocumentationUri!=null&&Object.hasOwnProperty.call(message,"restReferenceDocumentationUri"))writer.uint32(890).string(message.restReferenceDocumentationUri);return writer};Publishing.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};Publishing.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.Publishing;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 2:{if(!(message.methodSettings&&message.methodSettings.length))message.methodSettings=[];message.methodSettings.push($root.google.api.MethodSettings.decode(reader,reader.uint32(),undefined,long+1));break}case 101:{message.newIssueUri=reader.string();break}case 102:{message.documentationUri=reader.string();break}case 103:{message.apiShortName=reader.string();break}case 104:{message.githubLabel=reader.string();break}case 105:{if(!(message.codeownerGithubTeams&&message.codeownerGithubTeams.length))message.codeownerGithubTeams=[];message.codeownerGithubTeams.push(reader.string());break}case 106:{message.docTagPrefix=reader.string();break}case 107:{message.organization=reader.int32();break}case 109:{if(!(message.librarySettings&&message.librarySettings.length))message.librarySettings=[];message.librarySettings.push($root.google.api.ClientLibrarySettings.decode(reader,reader.uint32(),undefined,long+1));break}case 110:{message.protoReferenceDocumentationUri=reader.string();break}case 111:{message.restReferenceDocumentationUri=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};Publishing.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Publishing.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.methodSettings!=null&&message.hasOwnProperty("methodSettings")){if(!Array.isArray(message.methodSettings))return"methodSettings: array expected";for(var i=0;i<message.methodSettings.length;++i){var error=$root.google.api.MethodSettings.verify(message.methodSettings[i],long+1);if(error)return"methodSettings."+error}}if(message.newIssueUri!=null&&message.hasOwnProperty("newIssueUri"))if(!$util.isString(message.newIssueUri))return"newIssueUri: string expected";if(message.documentationUri!=null&&message.hasOwnProperty("documentationUri"))if(!$util.isString(message.documentationUri))return"documentationUri: string expected";if(message.apiShortName!=null&&message.hasOwnProperty("apiShortName"))if(!$util.isString(message.apiShortName))return"apiShortName: string expected";if(message.githubLabel!=null&&message.hasOwnProperty("githubLabel"))if(!$util.isString(message.githubLabel))return"githubLabel: string expected";if(message.codeownerGithubTeams!=null&&message.hasOwnProperty("codeownerGithubTeams")){if(!Array.isArray(message.codeownerGithubTeams))return"codeownerGithubTeams: array expected";for(var i=0;i<message.codeownerGithubTeams.length;++i)if(!$util.isString(message.codeownerGithubTeams[i]))return"codeownerGithubTeams: string[] expected"}if(message.docTagPrefix!=null&&message.hasOwnProperty("docTagPrefix"))if(!$util.isString(message.docTagPrefix))return"docTagPrefix: string expected";if(message.organization!=null&&message.hasOwnProperty("organization"))switch(message.organization){default:return"organization: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.librarySettings!=null&&message.hasOwnProperty("librarySettings")){if(!Array.isArray(message.librarySettings))return"librarySettings: array expected";for(var i=0;i<message.librarySettings.length;++i){var error=$root.google.api.ClientLibrarySettings.verify(message.librarySettings[i],long+1);if(error)return"librarySettings."+error}}if(message.protoReferenceDocumentationUri!=null&&message.hasOwnProperty("protoReferenceDocumentationUri"))if(!$util.isString(message.protoReferenceDocumentationUri))return"protoReferenceDocumentationUri: string expected";if(message.restReferenceDocumentationUri!=null&&message.hasOwnProperty("restReferenceDocumentationUri"))if(!$util.isString(message.restReferenceDocumentationUri))return"restReferenceDocumentationUri: string expected";return null};Publishing.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.Publishing)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.Publishing;if(object.methodSettings){if(!Array.isArray(object.methodSettings))throw TypeError(".google.api.Publishing.methodSettings: array expected");message.methodSettings=[];for(var i=0;i<object.methodSettings.length;++i){if(typeof object.methodSettings[i]!=="object")throw TypeError(".google.api.Publishing.methodSettings: object expected");message.methodSettings[i]=$root.google.api.MethodSettings.fromObject(object.methodSettings[i],long+1)}}if(object.newIssueUri!=null)message.newIssueUri=String(object.newIssueUri);if(object.documentationUri!=null)message.documentationUri=String(object.documentationUri);if(object.apiShortName!=null)message.apiShortName=String(object.apiShortName);if(object.githubLabel!=null)message.githubLabel=String(object.githubLabel);if(object.codeownerGithubTeams){if(!Array.isArray(object.codeownerGithubTeams))throw TypeError(".google.api.Publishing.codeownerGithubTeams: array expected");message.codeownerGithubTeams=[];for(var i=0;i<object.codeownerGithubTeams.length;++i)message.codeownerGithubTeams[i]=String(object.codeownerGithubTeams[i])}if(object.docTagPrefix!=null)message.docTagPrefix=String(object.docTagPrefix);switch(object.organization){default:if(typeof object.organization==="number"){message.organization=object.organization;break}break;case"CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED":case 0:message.organization=0;break;case"CLOUD":case 1:message.organization=1;break;case"ADS":case 2:message.organization=2;break;case"PHOTOS":case 3:message.organization=3;break;case"STREET_VIEW":case 4:message.organization=4;break;case"SHOPPING":case 5:message.organization=5;break;case"GEO":case 6:message.organization=6;break;case"GENERATIVE_AI":case 7:message.organization=7;break}if(object.librarySettings){if(!Array.isArray(object.librarySettings))throw TypeError(".google.api.Publishing.librarySettings: array expected");message.librarySettings=[];for(var i=0;i<object.librarySettings.length;++i){if(typeof object.librarySettings[i]!=="object")throw TypeError(".google.api.Publishing.librarySettings: object expected");message.librarySettings[i]=$root.google.api.ClientLibrarySettings.fromObject(object.librarySettings[i],long+1)}}if(object.protoReferenceDocumentationUri!=null)message.protoReferenceDocumentationUri=String(object.protoReferenceDocumentationUri);if(object.restReferenceDocumentationUri!=null)message.restReferenceDocumentationUri=String(object.restReferenceDocumentationUri);return message};Publishing.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.methodSettings=[];object.codeownerGithubTeams=[];object.librarySettings=[]}if(options.defaults){object.newIssueUri="";object.documentationUri="";object.apiShortName="";object.githubLabel="";object.docTagPrefix="";object.organization=options.enums===String?"CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED":0;object.protoReferenceDocumentationUri="";object.restReferenceDocumentationUri=""}if(message.methodSettings&&message.methodSettings.length){object.methodSettings=[];for(var j=0;j<message.methodSettings.length;++j)object.methodSettings[j]=$root.google.api.MethodSettings.toObject(message.methodSettings[j],options)}if(message.newIssueUri!=null&&message.hasOwnProperty("newIssueUri"))object.newIssueUri=message.newIssueUri;if(message.documentationUri!=null&&message.hasOwnProperty("documentationUri"))object.documentationUri=message.documentationUri;if(message.apiShortName!=null&&message.hasOwnProperty("apiShortName"))object.apiShortName=message.apiShortName;if(message.githubLabel!=null&&message.hasOwnProperty("githubLabel"))object.githubLabel=message.githubLabel;if(message.codeownerGithubTeams&&message.codeownerGithubTeams.length){object.codeownerGithubTeams=[];for(var j=0;j<message.codeownerGithubTeams.length;++j)object.codeownerGithubTeams[j]=message.codeownerGithubTeams[j]}if(message.docTagPrefix!=null&&message.hasOwnProperty("docTagPrefix"))object.docTagPrefix=message.docTagPrefix;if(message.organization!=null&&message.hasOwnProperty("organization"))object.organization=options.enums===String?$root.google.api.ClientLibraryOrganization[message.organization]===undefined?message.organization:$root.google.api.ClientLibraryOrganization[message.organization]:message.organization;if(message.librarySettings&&message.librarySettings.length){object.librarySettings=[];for(var j=0;j<message.librarySettings.length;++j)object.librarySettings[j]=$root.google.api.ClientLibrarySettings.toObject(message.librarySettings[j],options)}if(message.protoReferenceDocumentationUri!=null&&message.hasOwnProperty("protoReferenceDocumentationUri"))object.protoReferenceDocumentationUri=message.protoReferenceDocumentationUri;if(message.restReferenceDocumentationUri!=null&&message.hasOwnProperty("restReferenceDocumentationUri"))object.restReferenceDocumentationUri=message.restReferenceDocumentationUri;return object};Publishing.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Publishing.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.Publishing"};return Publishing}();api.JavaSettings=function(){function JavaSettings(properties){this.serviceClassNames={};if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}JavaSettings.prototype.libraryPackage="";JavaSettings.prototype.serviceClassNames=$util.emptyObject;JavaSettings.prototype.common=null;JavaSettings.create=function create(properties){return new JavaSettings(properties)};JavaSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.libraryPackage!=null&&Object.hasOwnProperty.call(message,"libraryPackage"))writer.uint32(10).string(message.libraryPackage);if(message.serviceClassNames!=null&&Object.hasOwnProperty.call(message,"serviceClassNames"))for(var keys=Object.keys(message.serviceClassNames),i=0;i<keys.length;++i)writer.uint32(18).fork().uint32(10).string(keys[i]).uint32(18).string(message.serviceClassNames[keys[i]]).ldelim();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(26).fork()).ldelim();return writer};JavaSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};JavaSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.JavaSettings,key,value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.libraryPackage=reader.string();break}case 2:{if(message.serviceClassNames===$util.emptyObject)message.serviceClassNames={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos<end2){var tag2=reader.uint32();switch(tag2>>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.serviceClassNames,key);message.serviceClassNames[key]=value;break}case 3:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};JavaSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};JavaSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.libraryPackage!=null&&message.hasOwnProperty("libraryPackage"))if(!$util.isString(message.libraryPackage))return"libraryPackage: string expected";if(message.serviceClassNames!=null&&message.hasOwnProperty("serviceClassNames")){if(!$util.isObject(message.serviceClassNames))return"serviceClassNames: object expected";var key=Object.keys(message.serviceClassNames);for(var i=0;i<key.length;++i)if(!$util.isString(message.serviceClassNames[key[i]]))return"serviceClassNames: string{k:string} expected"}if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};JavaSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.JavaSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.JavaSettings;if(object.libraryPackage!=null)message.libraryPackage=String(object.libraryPackage);if(object.serviceClassNames){if(typeof object.serviceClassNames!=="object")throw TypeError(".google.api.JavaSettings.serviceClassNames: object expected");message.serviceClassNames={};for(var keys=Object.keys(object.serviceClassNames),i=0;i<keys.length;++i){if(keys[i]==="__proto__")$util.makeProp(message.serviceClassNames,keys[i]);message.serviceClassNames[keys[i]]=String(object.serviceClassNames[keys[i]])}}if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.JavaSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};JavaSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.objects||options.defaults)object.serviceClassNames={};if(options.defaults){object.libraryPackage="";object.common=null}if(message.libraryPackage!=null&&message.hasOwnProperty("libraryPackage"))object.libraryPackage=message.libraryPackage;var keys2;if(message.serviceClassNames&&(keys2=Object.keys(message.serviceClassNames)).length){object.serviceClassNames={};for(var j=0;j<keys2.length;++j){if(keys2[j]==="__proto__")$util.makeProp(object.serviceClassNames,keys2[j]);object.serviceClassNames[keys2[j]]=message.serviceClassNames[keys2[j]]}}if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};JavaSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};JavaSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.JavaSettings"};return JavaSettings}();api.CppSettings=function(){function CppSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}CppSettings.prototype.common=null;CppSettings.create=function create(properties){return new CppSettings(properties)};CppSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();return writer};CppSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};CppSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.CppSettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CppSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CppSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};CppSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.CppSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.CppSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.CppSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};CppSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};CppSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CppSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.CppSettings"};return CppSettings}();api.PhpSettings=function(){function PhpSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}PhpSettings.prototype.common=null;PhpSettings.prototype.libraryPackage="";PhpSettings.create=function create(properties){return new PhpSettings(properties)};PhpSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();if(message.libraryPackage!=null&&Object.hasOwnProperty.call(message,"libraryPackage"))writer.uint32(18).string(message.libraryPackage);return writer};PhpSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};PhpSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.PhpSettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.libraryPackage=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};PhpSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PhpSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.libraryPackage!=null&&message.hasOwnProperty("libraryPackage"))if(!$util.isString(message.libraryPackage))return"libraryPackage: string expected";return null};PhpSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.PhpSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.PhpSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.PhpSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.libraryPackage!=null)message.libraryPackage=String(object.libraryPackage);return message};PhpSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.common=null;object.libraryPackage=""}if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);if(message.libraryPackage!=null&&message.hasOwnProperty("libraryPackage"))object.libraryPackage=message.libraryPackage;return object};PhpSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PhpSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.PhpSettings"};return PhpSettings}();api.PythonSettings=function(){function PythonSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}PythonSettings.prototype.common=null;PythonSettings.prototype.experimentalFeatures=null;PythonSettings.create=function create(properties){return new PythonSettings(properties)};PythonSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();if(message.experimentalFeatures!=null&&Object.hasOwnProperty.call(message,"experimentalFeatures"))$root.google.api.PythonSettings.ExperimentalFeatures.encode(message.experimentalFeatures,writer.uint32(18).fork()).ldelim();return writer};PythonSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};PythonSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.PythonSettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.experimentalFeatures=$root.google.api.PythonSettings.ExperimentalFeatures.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};PythonSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PythonSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.experimentalFeatures!=null&&message.hasOwnProperty("experimentalFeatures")){var error=$root.google.api.PythonSettings.ExperimentalFeatures.verify(message.experimentalFeatures,long+1);if(error)return"experimentalFeatures."+error}return null};PythonSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.PythonSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.PythonSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.PythonSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.experimentalFeatures!=null){if(typeof object.experimentalFeatures!=="object")throw TypeError(".google.api.PythonSettings.experimentalFeatures: object expected");message.experimentalFeatures=$root.google.api.PythonSettings.ExperimentalFeatures.fromObject(object.experimentalFeatures,long+1)}return message};PythonSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.common=null;object.experimentalFeatures=null}if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);if(message.experimentalFeatures!=null&&message.hasOwnProperty("experimentalFeatures"))object.experimentalFeatures=$root.google.api.PythonSettings.ExperimentalFeatures.toObject(message.experimentalFeatures,options);return object};PythonSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PythonSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.PythonSettings"};PythonSettings.ExperimentalFeatures=function(){function ExperimentalFeatures(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}ExperimentalFeatures.prototype.restAsyncIoEnabled=false;ExperimentalFeatures.prototype.protobufPythonicTypesEnabled=false;ExperimentalFeatures.prototype.unversionedPackageDisabled=false;ExperimentalFeatures.create=function create(properties){return new ExperimentalFeatures(properties)};ExperimentalFeatures.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.restAsyncIoEnabled!=null&&Object.hasOwnProperty.call(message,"restAsyncIoEnabled"))writer.uint32(8).bool(message.restAsyncIoEnabled);if(message.protobufPythonicTypesEnabled!=null&&Object.hasOwnProperty.call(message,"protobufPythonicTypesEnabled"))writer.uint32(16).bool(message.protobufPythonicTypesEnabled);if(message.unversionedPackageDisabled!=null&&Object.hasOwnProperty.call(message,"unversionedPackageDisabled"))writer.uint32(24).bool(message.unversionedPackageDisabled);return writer};ExperimentalFeatures.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};ExperimentalFeatures.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.PythonSettings.ExperimentalFeatures;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.restAsyncIoEnabled=reader.bool();break}case 2:{message.protobufPythonicTypesEnabled=reader.bool();break}case 3:{message.unversionedPackageDisabled=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ExperimentalFeatures.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExperimentalFeatures.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.restAsyncIoEnabled!=null&&message.hasOwnProperty("restAsyncIoEnabled"))if(typeof message.restAsyncIoEnabled!=="boolean")return"restAsyncIoEnabled: boolean expected";if(message.protobufPythonicTypesEnabled!=null&&message.hasOwnProperty("protobufPythonicTypesEnabled"))if(typeof message.protobufPythonicTypesEnabled!=="boolean")return"protobufPythonicTypesEnabled: boolean expected";if(message.unversionedPackageDisabled!=null&&message.hasOwnProperty("unversionedPackageDisabled"))if(typeof message.unversionedPackageDisabled!=="boolean")return"unversionedPackageDisabled: boolean expected";return null};ExperimentalFeatures.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.PythonSettings.ExperimentalFeatures)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.PythonSettings.ExperimentalFeatures;if(object.restAsyncIoEnabled!=null)message.restAsyncIoEnabled=Boolean(object.restAsyncIoEnabled);if(object.protobufPythonicTypesEnabled!=null)message.protobufPythonicTypesEnabled=Boolean(object.protobufPythonicTypesEnabled);if(object.unversionedPackageDisabled!=null)message.unversionedPackageDisabled=Boolean(object.unversionedPackageDisabled);return message};ExperimentalFeatures.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.restAsyncIoEnabled=false;object.protobufPythonicTypesEnabled=false;object.unversionedPackageDisabled=false}if(message.restAsyncIoEnabled!=null&&message.hasOwnProperty("restAsyncIoEnabled"))object.restAsyncIoEnabled=message.restAsyncIoEnabled;if(message.protobufPythonicTypesEnabled!=null&&message.hasOwnProperty("protobufPythonicTypesEnabled"))object.protobufPythonicTypesEnabled=message.protobufPythonicTypesEnabled;if(message.unversionedPackageDisabled!=null&&message.hasOwnProperty("unversionedPackageDisabled"))object.unversionedPackageDisabled=message.unversionedPackageDisabled;return object};ExperimentalFeatures.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExperimentalFeatures.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.PythonSettings.ExperimentalFeatures"};return ExperimentalFeatures}();return PythonSettings}();api.NodeSettings=function(){function NodeSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}NodeSettings.prototype.common=null;NodeSettings.create=function create(properties){return new NodeSettings(properties)};NodeSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();return writer};NodeSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};NodeSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.NodeSettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};NodeSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};NodeSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};NodeSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.NodeSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.NodeSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.NodeSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};NodeSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};NodeSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};NodeSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.NodeSettings"};return NodeSettings}();api.DotnetSettings=function(){function DotnetSettings(properties){this.renamedServices={};this.renamedResources={};this.ignoredResources=[];this.forcedNamespaceAliases=[];this.handwrittenSignatures=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}DotnetSettings.prototype.common=null;DotnetSettings.prototype.renamedServices=$util.emptyObject;DotnetSettings.prototype.renamedResources=$util.emptyObject;DotnetSettings.prototype.ignoredResources=$util.emptyArray;DotnetSettings.prototype.forcedNamespaceAliases=$util.emptyArray;DotnetSettings.prototype.handwrittenSignatures=$util.emptyArray;DotnetSettings.create=function create(properties){return new DotnetSettings(properties)};DotnetSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();if(message.renamedServices!=null&&Object.hasOwnProperty.call(message,"renamedServices"))for(var keys=Object.keys(message.renamedServices),i=0;i<keys.length;++i)writer.uint32(18).fork().uint32(10).string(keys[i]).uint32(18).string(message.renamedServices[keys[i]]).ldelim();if(message.renamedResources!=null&&Object.hasOwnProperty.call(message,"renamedResources"))for(var keys=Object.keys(message.renamedResources),i=0;i<keys.length;++i)writer.uint32(26).fork().uint32(10).string(keys[i]).uint32(18).string(message.renamedResources[keys[i]]).ldelim();if(message.ignoredResources!=null&&message.ignoredResources.length)for(var i=0;i<message.ignoredResources.length;++i)writer.uint32(34).string(message.ignoredResources[i]);if(message.forcedNamespaceAliases!=null&&message.forcedNamespaceAliases.length)for(var i=0;i<message.forcedNamespaceAliases.length;++i)writer.uint32(42).string(message.forcedNamespaceAliases[i]);if(message.handwrittenSignatures!=null&&message.handwrittenSignatures.length)for(var i=0;i<message.handwrittenSignatures.length;++i)writer.uint32(50).string(message.handwrittenSignatures[i]);return writer};DotnetSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};DotnetSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.DotnetSettings,key,value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(message.renamedServices===$util.emptyObject)message.renamedServices={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos<end2){var tag2=reader.uint32();switch(tag2>>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.renamedServices,key);message.renamedServices[key]=value;break}case 3:{if(message.renamedResources===$util.emptyObject)message.renamedResources={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos<end2){var tag2=reader.uint32();switch(tag2>>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.renamedResources,key);message.renamedResources[key]=value;break}case 4:{if(!(message.ignoredResources&&message.ignoredResources.length))message.ignoredResources=[];message.ignoredResources.push(reader.string());break}case 5:{if(!(message.forcedNamespaceAliases&&message.forcedNamespaceAliases.length))message.forcedNamespaceAliases=[];message.forcedNamespaceAliases.push(reader.string());break}case 6:{if(!(message.handwrittenSignatures&&message.handwrittenSignatures.length))message.handwrittenSignatures=[];message.handwrittenSignatures.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};DotnetSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DotnetSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.renamedServices!=null&&message.hasOwnProperty("renamedServices")){if(!$util.isObject(message.renamedServices))return"renamedServices: object expected";var key=Object.keys(message.renamedServices);for(var i=0;i<key.length;++i)if(!$util.isString(message.renamedServices[key[i]]))return"renamedServices: string{k:string} expected"}if(message.renamedResources!=null&&message.hasOwnProperty("renamedResources")){if(!$util.isObject(message.renamedResources))return"renamedResources: object expected";var key=Object.keys(message.renamedResources);for(var i=0;i<key.length;++i)if(!$util.isString(message.renamedResources[key[i]]))return"renamedResources: string{k:string} expected"}if(message.ignoredResources!=null&&message.hasOwnProperty("ignoredResources")){if(!Array.isArray(message.ignoredResources))return"ignoredResources: array expected";for(var i=0;i<message.ignoredResources.length;++i)if(!$util.isString(message.ignoredResources[i]))return"ignoredResources: string[] expected"}if(message.forcedNamespaceAliases!=null&&message.hasOwnProperty("forcedNamespaceAliases")){if(!Array.isArray(message.forcedNamespaceAliases))return"forcedNamespaceAliases: array expected";for(var i=0;i<message.forcedNamespaceAliases.length;++i)if(!$util.isString(message.forcedNamespaceAliases[i]))return"forcedNamespaceAliases: string[] expected"}if(message.handwrittenSignatures!=null&&message.hasOwnProperty("handwrittenSignatures")){if(!Array.isArray(message.handwrittenSignatures))return"handwrittenSignatures: array expected";for(var i=0;i<message.handwrittenSignatures.length;++i)if(!$util.isString(message.handwrittenSignatures[i]))return"handwrittenSignatures: string[] expected"}return null};DotnetSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.DotnetSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.DotnetSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.DotnetSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.renamedServices){if(typeof object.renamedServices!=="object")throw TypeError(".google.api.DotnetSettings.renamedServices: object expected");message.renamedServices={};for(var keys=Object.keys(object.renamedServices),i=0;i<keys.length;++i){if(keys[i]==="__proto__")$util.makeProp(message.renamedServices,keys[i]);message.renamedServices[keys[i]]=String(object.renamedServices[keys[i]])}}if(object.renamedResources){if(typeof object.renamedResources!=="object")throw TypeError(".google.api.DotnetSettings.renamedResources: object expected");message.renamedResources={};for(var keys=Object.keys(object.renamedResources),i=0;i<keys.length;++i){if(keys[i]==="__proto__")$util.makeProp(message.renamedResources,keys[i]);message.renamedResources[keys[i]]=String(object.renamedResources[keys[i]])}}if(object.ignoredResources){if(!Array.isArray(object.ignoredResources))throw TypeError(".google.api.DotnetSettings.ignoredResources: array expected");message.ignoredResources=[];for(var i=0;i<object.ignoredResources.length;++i)message.ignoredResources[i]=String(object.ignoredResources[i])}if(object.forcedNamespaceAliases){if(!Array.isArray(object.forcedNamespaceAliases))throw TypeError(".google.api.DotnetSettings.forcedNamespaceAliases: array expected");message.forcedNamespaceAliases=[];for(var i=0;i<object.forcedNamespaceAliases.length;++i)message.forcedNamespaceAliases[i]=String(object.forcedNamespaceAliases[i])}if(object.handwrittenSignatures){if(!Array.isArray(object.handwrittenSignatures))throw TypeError(".google.api.DotnetSettings.handwrittenSignatures: array expected");message.handwrittenSignatures=[];for(var i=0;i<object.handwrittenSignatures.length;++i)message.handwrittenSignatures[i]=String(object.handwrittenSignatures[i])}return message};DotnetSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults){object.ignoredResources=[];object.forcedNamespaceAliases=[];object.handwrittenSignatures=[]}if(options.objects||options.defaults){object.renamedServices={};object.renamedResources={}}if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);var keys2;if(message.renamedServices&&(keys2=Object.keys(message.renamedServices)).length){object.renamedServices={};for(var j=0;j<keys2.length;++j){if(keys2[j]==="__proto__")$util.makeProp(object.renamedServices,keys2[j]);object.renamedServices[keys2[j]]=message.renamedServices[keys2[j]]}}if(message.renamedResources&&(keys2=Object.keys(message.renamedResources)).length){object.renamedResources={};for(var j=0;j<keys2.length;++j){if(keys2[j]==="__proto__")$util.makeProp(object.renamedResources,keys2[j]);object.renamedResources[keys2[j]]=message.renamedResources[keys2[j]]}}if(message.ignoredResources&&message.ignoredResources.length){object.ignoredResources=[];for(var j=0;j<message.ignoredResources.length;++j)object.ignoredResources[j]=message.ignoredResources[j]}if(message.forcedNamespaceAliases&&message.forcedNamespaceAliases.length){object.forcedNamespaceAliases=[];for(var j=0;j<message.forcedNamespaceAliases.length;++j)object.forcedNamespaceAliases[j]=message.forcedNamespaceAliases[j]}if(message.handwrittenSignatures&&message.handwrittenSignatures.length){object.handwrittenSignatures=[];for(var j=0;j<message.handwrittenSignatures.length;++j)object.handwrittenSignatures[j]=message.handwrittenSignatures[j]}return object};DotnetSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DotnetSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.DotnetSettings"};return DotnetSettings}();api.RubySettings=function(){function RubySettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}RubySettings.prototype.common=null;RubySettings.create=function create(properties){return new RubySettings(properties)};RubySettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();return writer};RubySettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};RubySettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.RubySettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RubySettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RubySettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};RubySettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.RubySettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.RubySettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.RubySettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};RubySettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};RubySettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RubySettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.RubySettings"};return RubySettings}();api.GoSettings=function(){function GoSettings(properties){this.renamedServices={};if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}GoSettings.prototype.common=null;GoSettings.prototype.renamedServices=$util.emptyObject;GoSettings.create=function create(properties){return new GoSettings(properties)};GoSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.common!=null&&Object.hasOwnProperty.call(message,"common"))$root.google.api.CommonLanguageSettings.encode(message.common,writer.uint32(10).fork()).ldelim();if(message.renamedServices!=null&&Object.hasOwnProperty.call(message,"renamedServices"))for(var keys=Object.keys(message.renamedServices),i=0;i<keys.length;++i)writer.uint32(18).fork().uint32(10).string(keys[i]).uint32(18).string(message.renamedServices[keys[i]]).ldelim();return writer};GoSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};GoSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.GoSettings,key,value;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(message.renamedServices===$util.emptyObject)message.renamedServices={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos<end2){var tag2=reader.uint32();switch(tag2>>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.renamedServices,key);message.renamedServices[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};GoSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GoSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.renamedServices!=null&&message.hasOwnProperty("renamedServices")){if(!$util.isObject(message.renamedServices))return"renamedServices: object expected";var key=Object.keys(message.renamedServices);for(var i=0;i<key.length;++i)if(!$util.isString(message.renamedServices[key[i]]))return"renamedServices: string{k:string} expected"}return null};GoSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.GoSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.GoSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.GoSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.renamedServices){if(typeof object.renamedServices!=="object")throw TypeError(".google.api.GoSettings.renamedServices: object expected");message.renamedServices={};for(var keys=Object.keys(object.renamedServices),i=0;i<keys.length;++i){if(keys[i]==="__proto__")$util.makeProp(message.renamedServices,keys[i]);message.renamedServices[keys[i]]=String(object.renamedServices[keys[i]])}}return message};GoSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.objects||options.defaults)object.renamedServices={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);var keys2;if(message.renamedServices&&(keys2=Object.keys(message.renamedServices)).length){object.renamedServices={};for(var j=0;j<keys2.length;++j){if(keys2[j]==="__proto__")$util.makeProp(object.renamedServices,keys2[j]);object.renamedServices[keys2[j]]=message.renamedServices[keys2[j]]}}return object};GoSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GoSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.GoSettings"};return GoSettings}();api.MethodSettings=function(){function MethodSettings(properties){this.autoPopulatedFields=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}MethodSettings.prototype.selector="";MethodSettings.prototype.longRunning=null;MethodSettings.prototype.autoPopulatedFields=$util.emptyArray;MethodSettings.prototype.batching=null;MethodSettings.create=function create(properties){return new MethodSettings(properties)};MethodSettings.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.selector!=null&&Object.hasOwnProperty.call(message,"selector"))writer.uint32(10).string(message.selector);if(message.longRunning!=null&&Object.hasOwnProperty.call(message,"longRunning"))$root.google.api.MethodSettings.LongRunning.encode(message.longRunning,writer.uint32(18).fork()).ldelim();if(message.autoPopulatedFields!=null&&message.autoPopulatedFields.length)for(var i=0;i<message.autoPopulatedFields.length;++i)writer.uint32(26).string(message.autoPopulatedFields[i]);if(message.batching!=null&&Object.hasOwnProperty.call(message,"batching"))$root.google.api.BatchingConfigProto.encode(message.batching,writer.uint32(34).fork()).ldelim();return writer};MethodSettings.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};MethodSettings.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.MethodSettings;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.selector=reader.string();break}case 2:{message.longRunning=$root.google.api.MethodSettings.LongRunning.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{if(!(message.autoPopulatedFields&&message.autoPopulatedFields.length))message.autoPopulatedFields=[];message.autoPopulatedFields.push(reader.string());break}case 4:{message.batching=$root.google.api.BatchingConfigProto.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};MethodSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MethodSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.selector!=null&&message.hasOwnProperty("selector"))if(!$util.isString(message.selector))return"selector: string expected";if(message.longRunning!=null&&message.hasOwnProperty("longRunning")){var error=$root.google.api.MethodSettings.LongRunning.verify(message.longRunning,long+1);if(error)return"longRunning."+error}if(message.autoPopulatedFields!=null&&message.hasOwnProperty("autoPopulatedFields")){if(!Array.isArray(message.autoPopulatedFields))return"autoPopulatedFields: array expected";for(var i=0;i<message.autoPopulatedFields.length;++i)if(!$util.isString(message.autoPopulatedFields[i]))return"autoPopulatedFields: string[] expected"}if(message.batching!=null&&message.hasOwnProperty("batching")){var error=$root.google.api.BatchingConfigProto.verify(message.batching,long+1);if(error)return"batching."+error}return null};MethodSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.MethodSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.MethodSettings;if(object.selector!=null)message.selector=String(object.selector);if(object.longRunning!=null){if(typeof object.longRunning!=="object")throw TypeError(".google.api.MethodSettings.longRunning: object expected");message.longRunning=$root.google.api.MethodSettings.LongRunning.fromObject(object.longRunning,long+1)}if(object.autoPopulatedFields){if(!Array.isArray(object.autoPopulatedFields))throw TypeError(".google.api.MethodSettings.autoPopulatedFields: array expected");message.autoPopulatedFields=[];for(var i=0;i<object.autoPopulatedFields.length;++i)message.autoPopulatedFields[i]=String(object.autoPopulatedFields[i])}if(object.batching!=null){if(typeof object.batching!=="object")throw TypeError(".google.api.MethodSettings.batching: object expected");message.batching=$root.google.api.BatchingConfigProto.fromObject(object.batching,long+1)}return message};MethodSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.autoPopulatedFields=[];if(options.defaults){object.selector="";object.longRunning=null;object.batching=null}if(message.selector!=null&&message.hasOwnProperty("selector"))object.selector=message.selector;if(message.longRunning!=null&&message.hasOwnProperty("longRunning"))object.longRunning=$root.google.api.MethodSettings.LongRunning.toObject(message.longRunning,options);if(message.autoPopulatedFields&&message.autoPopulatedFields.length){object.autoPopulatedFields=[];for(var j=0;j<message.autoPopulatedFields.length;++j)object.autoPopulatedFields[j]=message.autoPopulatedFields[j]}if(message.batching!=null&&message.hasOwnProperty("batching"))object.batching=$root.google.api.BatchingConfigProto.toObject(message.batching,options);return object};MethodSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};MethodSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.MethodSettings"};MethodSettings.LongRunning=function(){function LongRunning(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}LongRunning.prototype.initialPollDelay=null;LongRunning.prototype.pollDelayMultiplier=0;LongRunning.prototype.maxPollDelay=null;LongRunning.prototype.totalPollTimeout=null;LongRunning.create=function create(properties){return new LongRunning(properties)};LongRunning.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.initialPollDelay!=null&&Object.hasOwnProperty.call(message,"initialPollDelay"))$root.google.protobuf.Duration.encode(message.initialPollDelay,writer.uint32(10).fork()).ldelim();if(message.pollDelayMultiplier!=null&&Object.hasOwnProperty.call(message,"pollDelayMultiplier"))writer.uint32(21).float(message.pollDelayMultiplier);if(message.maxPollDelay!=null&&Object.hasOwnProperty.call(message,"maxPollDelay"))$root.google.protobuf.Duration.encode(message.maxPollDelay,writer.uint32(26).fork()).ldelim();if(message.totalPollTimeout!=null&&Object.hasOwnProperty.call(message,"totalPollTimeout"))$root.google.protobuf.Duration.encode(message.totalPollTimeout,writer.uint32(34).fork()).ldelim();return writer};LongRunning.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};LongRunning.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.MethodSettings.LongRunning;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.initialPollDelay=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.pollDelayMultiplier=reader.float();break}case 3:{message.maxPollDelay=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.totalPollTimeout=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};LongRunning.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LongRunning.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.initialPollDelay!=null&&message.hasOwnProperty("initialPollDelay")){var error=$root.google.protobuf.Duration.verify(message.initialPollDelay,long+1);if(error)return"initialPollDelay."+error}if(message.pollDelayMultiplier!=null&&message.hasOwnProperty("pollDelayMultiplier"))if(typeof message.pollDelayMultiplier!=="number")return"pollDelayMultiplier: number expected";if(message.maxPollDelay!=null&&message.hasOwnProperty("maxPollDelay")){var error=$root.google.protobuf.Duration.verify(message.maxPollDelay,long+1);if(error)return"maxPollDelay."+error}if(message.totalPollTimeout!=null&&message.hasOwnProperty("totalPollTimeout")){var error=$root.google.protobuf.Duration.verify(message.totalPollTimeout,long+1);if(error)return"totalPollTimeout."+error}return null};LongRunning.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.MethodSettings.LongRunning)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.MethodSettings.LongRunning;if(object.initialPollDelay!=null){if(typeof object.initialPollDelay!=="object")throw TypeError(".google.api.MethodSettings.LongRunning.initialPollDelay: object expected");message.initialPollDelay=$root.google.protobuf.Duration.fromObject(object.initialPollDelay,long+1)}if(object.pollDelayMultiplier!=null)message.pollDelayMultiplier=Number(object.pollDelayMultiplier);if(object.maxPollDelay!=null){if(typeof object.maxPollDelay!=="object")throw TypeError(".google.api.MethodSettings.LongRunning.maxPollDelay: object expected");message.maxPollDelay=$root.google.protobuf.Duration.fromObject(object.maxPollDelay,long+1)}if(object.totalPollTimeout!=null){if(typeof object.totalPollTimeout!=="object")throw TypeError(".google.api.MethodSettings.LongRunning.totalPollTimeout: object expected");message.totalPollTimeout=$root.google.protobuf.Duration.fromObject(object.totalPollTimeout,long+1)}return message};LongRunning.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.initialPollDelay=null;object.pollDelayMultiplier=0;object.maxPollDelay=null;object.totalPollTimeout=null}if(message.initialPollDelay!=null&&message.hasOwnProperty("initialPollDelay"))object.initialPollDelay=$root.google.protobuf.Duration.toObject(message.initialPollDelay,options);if(message.pollDelayMultiplier!=null&&message.hasOwnProperty("pollDelayMultiplier"))object.pollDelayMultiplier=options.json&&!isFinite(message.pollDelayMultiplier)?String(message.pollDelayMultiplier):message.pollDelayMultiplier;if(message.maxPollDelay!=null&&message.hasOwnProperty("maxPollDelay"))object.maxPollDelay=$root.google.protobuf.Duration.toObject(message.maxPollDelay,options);if(message.totalPollTimeout!=null&&message.hasOwnProperty("totalPollTimeout"))object.totalPollTimeout=$root.google.protobuf.Duration.toObject(message.totalPollTimeout,options);return object};LongRunning.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LongRunning.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.MethodSettings.LongRunning"};return LongRunning}();return MethodSettings}();api.ClientLibraryOrganization=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED"]=0;values[valuesById[1]="CLOUD"]=1;values[valuesById[2]="ADS"]=2;values[valuesById[3]="PHOTOS"]=3;values[valuesById[4]="STREET_VIEW"]=4;values[valuesById[5]="SHOPPING"]=5;values[valuesById[6]="GEO"]=6;values[valuesById[7]="GENERATIVE_AI"]=7;return values}();api.ClientLibraryDestination=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CLIENT_LIBRARY_DESTINATION_UNSPECIFIED"]=0;values[valuesById[10]="GITHUB"]=10;values[valuesById[20]="PACKAGE_MANAGER"]=20;return values}();api.SelectiveGapicGeneration=function(){function SelectiveGapicGeneration(properties){this.methods=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}SelectiveGapicGeneration.prototype.methods=$util.emptyArray;SelectiveGapicGeneration.prototype.generateOmittedAsInternal=false;SelectiveGapicGeneration.create=function create(properties){return new SelectiveGapicGeneration(properties)};SelectiveGapicGeneration.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.methods!=null&&message.methods.length)for(var i=0;i<message.methods.length;++i)writer.uint32(10).string(message.methods[i]);if(message.generateOmittedAsInternal!=null&&Object.hasOwnProperty.call(message,"generateOmittedAsInternal"))writer.uint32(16).bool(message.generateOmittedAsInternal);return writer};SelectiveGapicGeneration.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};SelectiveGapicGeneration.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.SelectiveGapicGeneration;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{if(!(message.methods&&message.methods.length))message.methods=[];message.methods.push(reader.string());break}case 2:{message.generateOmittedAsInternal=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};SelectiveGapicGeneration.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SelectiveGapicGeneration.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.methods!=null&&message.hasOwnProperty("methods")){if(!Array.isArray(message.methods))return"methods: array expected";for(var i=0;i<message.methods.length;++i)if(!$util.isString(message.methods[i]))return"methods: string[] expected"}if(message.generateOmittedAsInternal!=null&&message.hasOwnProperty("generateOmittedAsInternal"))if(typeof message.generateOmittedAsInternal!=="boolean")return"generateOmittedAsInternal: boolean expected";return null};SelectiveGapicGeneration.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.SelectiveGapicGeneration)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.SelectiveGapicGeneration;if(object.methods){if(!Array.isArray(object.methods))throw TypeError(".google.api.SelectiveGapicGeneration.methods: array expected");message.methods=[];for(var i=0;i<object.methods.length;++i)message.methods[i]=String(object.methods[i])}if(object.generateOmittedAsInternal!=null)message.generateOmittedAsInternal=Boolean(object.generateOmittedAsInternal);return message};SelectiveGapicGeneration.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.methods=[];if(options.defaults)object.generateOmittedAsInternal=false;if(message.methods&&message.methods.length){object.methods=[];for(var j=0;j<message.methods.length;++j)object.methods[j]=message.methods[j]}if(message.generateOmittedAsInternal!=null&&message.hasOwnProperty("generateOmittedAsInternal"))object.generateOmittedAsInternal=message.generateOmittedAsInternal;return object};SelectiveGapicGeneration.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SelectiveGapicGeneration.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.SelectiveGapicGeneration"};return SelectiveGapicGeneration}();api.BatchingConfigProto=function(){function BatchingConfigProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}BatchingConfigProto.prototype.thresholds=null;BatchingConfigProto.prototype.batchDescriptor=null;BatchingConfigProto.create=function create(properties){return new BatchingConfigProto(properties)};BatchingConfigProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.thresholds!=null&&Object.hasOwnProperty.call(message,"thresholds"))$root.google.api.BatchingSettingsProto.encode(message.thresholds,writer.uint32(10).fork()).ldelim();if(message.batchDescriptor!=null&&Object.hasOwnProperty.call(message,"batchDescriptor"))$root.google.api.BatchingDescriptorProto.encode(message.batchDescriptor,writer.uint32(18).fork()).ldelim();return writer};BatchingConfigProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};BatchingConfigProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.BatchingConfigProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.thresholds=$root.google.api.BatchingSettingsProto.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.batchDescriptor=$root.google.api.BatchingDescriptorProto.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BatchingConfigProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchingConfigProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.thresholds!=null&&message.hasOwnProperty("thresholds")){var error=$root.google.api.BatchingSettingsProto.verify(message.thresholds,long+1);if(error)return"thresholds."+error}if(message.batchDescriptor!=null&&message.hasOwnProperty("batchDescriptor")){var error=$root.google.api.BatchingDescriptorProto.verify(message.batchDescriptor,long+1);if(error)return"batchDescriptor."+error}return null};BatchingConfigProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.BatchingConfigProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.BatchingConfigProto;if(object.thresholds!=null){if(typeof object.thresholds!=="object")throw TypeError(".google.api.BatchingConfigProto.thresholds: object expected");message.thresholds=$root.google.api.BatchingSettingsProto.fromObject(object.thresholds,long+1)}if(object.batchDescriptor!=null){if(typeof object.batchDescriptor!=="object")throw TypeError(".google.api.BatchingConfigProto.batchDescriptor: object expected");message.batchDescriptor=$root.google.api.BatchingDescriptorProto.fromObject(object.batchDescriptor,long+1)}return message};BatchingConfigProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.thresholds=null;object.batchDescriptor=null}if(message.thresholds!=null&&message.hasOwnProperty("thresholds"))object.thresholds=$root.google.api.BatchingSettingsProto.toObject(message.thresholds,options);if(message.batchDescriptor!=null&&message.hasOwnProperty("batchDescriptor"))object.batchDescriptor=$root.google.api.BatchingDescriptorProto.toObject(message.batchDescriptor,options);return object};BatchingConfigProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BatchingConfigProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.BatchingConfigProto"};return BatchingConfigProto}();api.BatchingSettingsProto=function(){function BatchingSettingsProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}BatchingSettingsProto.prototype.elementCountThreshold=0;BatchingSettingsProto.prototype.requestByteThreshold=$util.Long?$util.Long.fromBits(0,0,false):0;BatchingSettingsProto.prototype.delayThreshold=null;BatchingSettingsProto.prototype.elementCountLimit=0;BatchingSettingsProto.prototype.requestByteLimit=0;BatchingSettingsProto.prototype.flowControlElementLimit=0;BatchingSettingsProto.prototype.flowControlByteLimit=0;BatchingSettingsProto.prototype.flowControlLimitExceededBehavior=0;BatchingSettingsProto.create=function create(properties){return new BatchingSettingsProto(properties)};BatchingSettingsProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.elementCountThreshold!=null&&Object.hasOwnProperty.call(message,"elementCountThreshold"))writer.uint32(8).int32(message.elementCountThreshold);if(message.requestByteThreshold!=null&&Object.hasOwnProperty.call(message,"requestByteThreshold"))writer.uint32(16).int64(message.requestByteThreshold);if(message.delayThreshold!=null&&Object.hasOwnProperty.call(message,"delayThreshold"))$root.google.protobuf.Duration.encode(message.delayThreshold,writer.uint32(26).fork()).ldelim();if(message.elementCountLimit!=null&&Object.hasOwnProperty.call(message,"elementCountLimit"))writer.uint32(32).int32(message.elementCountLimit);if(message.requestByteLimit!=null&&Object.hasOwnProperty.call(message,"requestByteLimit"))writer.uint32(40).int32(message.requestByteLimit);if(message.flowControlElementLimit!=null&&Object.hasOwnProperty.call(message,"flowControlElementLimit"))writer.uint32(48).int32(message.flowControlElementLimit);if(message.flowControlByteLimit!=null&&Object.hasOwnProperty.call(message,"flowControlByteLimit"))writer.uint32(56).int32(message.flowControlByteLimit);if(message.flowControlLimitExceededBehavior!=null&&Object.hasOwnProperty.call(message,"flowControlLimitExceededBehavior"))writer.uint32(64).int32(message.flowControlLimitExceededBehavior);return writer};BatchingSettingsProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};BatchingSettingsProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.BatchingSettingsProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.elementCountThreshold=reader.int32();break}case 2:{message.requestByteThreshold=reader.int64();break}case 3:{message.delayThreshold=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.elementCountLimit=reader.int32();break}case 5:{message.requestByteLimit=reader.int32();break}case 6:{message.flowControlElementLimit=reader.int32();break}case 7:{message.flowControlByteLimit=reader.int32();break}case 8:{message.flowControlLimitExceededBehavior=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};BatchingSettingsProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchingSettingsProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.elementCountThreshold!=null&&message.hasOwnProperty("elementCountThreshold"))if(!$util.isInteger(message.elementCountThreshold))return"elementCountThreshold: integer expected";if(message.requestByteThreshold!=null&&message.hasOwnProperty("requestByteThreshold"))if(!$util.isInteger(message.requestByteThreshold)&&!(message.requestByteThreshold&&$util.isInteger(message.requestByteThreshold.low)&&$util.isInteger(message.requestByteThreshold.high)))return"requestByteThreshold: integer|Long expected";if(message.delayThreshold!=null&&message.hasOwnProperty("delayThreshold")){var error=$root.google.protobuf.Duration.verify(message.delayThreshold,long+1);if(error)return"delayThreshold."+error}if(message.elementCountLimit!=null&&message.hasOwnProperty("elementCountLimit"))if(!$util.isInteger(message.elementCountLimit))return"elementCountLimit: integer expected";if(message.requestByteLimit!=null&&message.hasOwnProperty("requestByteLimit"))if(!$util.isInteger(message.requestByteLimit))return"requestByteLimit: integer expected";if(message.flowControlElementLimit!=null&&message.hasOwnProperty("flowControlElementLimit"))if(!$util.isInteger(message.flowControlElementLimit))return"flowControlElementLimit: integer expected";if(message.flowControlByteLimit!=null&&message.hasOwnProperty("flowControlByteLimit"))if(!$util.isInteger(message.flowControlByteLimit))return"flowControlByteLimit: integer expected";if(message.flowControlLimitExceededBehavior!=null&&message.hasOwnProperty("flowControlLimitExceededBehavior"))switch(message.flowControlLimitExceededBehavior){default:return"flowControlLimitExceededBehavior: enum value expected";case 0:case 1:case 2:case 3:break}return null};BatchingSettingsProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.BatchingSettingsProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.BatchingSettingsProto;if(object.elementCountThreshold!=null)message.elementCountThreshold=object.elementCountThreshold|0;if(object.requestByteThreshold!=null)if($util.Long)(message.requestByteThreshold=$util.Long.fromValue(object.requestByteThreshold)).unsigned=false;else if(typeof object.requestByteThreshold==="string")message.requestByteThreshold=parseInt(object.requestByteThreshold,10);else if(typeof object.requestByteThreshold==="number")message.requestByteThreshold=object.requestByteThreshold;else if(typeof object.requestByteThreshold==="object")message.requestByteThreshold=new $util.LongBits(object.requestByteThreshold.low>>>0,object.requestByteThreshold.high>>>0).toNumber();if(object.delayThreshold!=null){if(typeof object.delayThreshold!=="object")throw TypeError(".google.api.BatchingSettingsProto.delayThreshold: object expected");message.delayThreshold=$root.google.protobuf.Duration.fromObject(object.delayThreshold,long+1)}if(object.elementCountLimit!=null)message.elementCountLimit=object.elementCountLimit|0;if(object.requestByteLimit!=null)message.requestByteLimit=object.requestByteLimit|0;if(object.flowControlElementLimit!=null)message.flowControlElementLimit=object.flowControlElementLimit|0;if(object.flowControlByteLimit!=null)message.flowControlByteLimit=object.flowControlByteLimit|0;switch(object.flowControlLimitExceededBehavior){default:if(typeof object.flowControlLimitExceededBehavior==="number"){message.flowControlLimitExceededBehavior=object.flowControlLimitExceededBehavior;break}break;case"UNSET_BEHAVIOR":case 0:message.flowControlLimitExceededBehavior=0;break;case"THROW_EXCEPTION":case 1:message.flowControlLimitExceededBehavior=1;break;case"BLOCK":case 2:message.flowControlLimitExceededBehavior=2;break;case"IGNORE":case 3:message.flowControlLimitExceededBehavior=3;break}return message};BatchingSettingsProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.elementCountThreshold=0;if($util.Long){var long=new $util.Long(0,0,false);object.requestByteThreshold=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.requestByteThreshold=options.longs===String?"0":0;object.delayThreshold=null;object.elementCountLimit=0;object.requestByteLimit=0;object.flowControlElementLimit=0;object.flowControlByteLimit=0;object.flowControlLimitExceededBehavior=options.enums===String?"UNSET_BEHAVIOR":0}if(message.elementCountThreshold!=null&&message.hasOwnProperty("elementCountThreshold"))object.elementCountThreshold=message.elementCountThreshold;if(message.requestByteThreshold!=null&&message.hasOwnProperty("requestByteThreshold"))if(typeof message.requestByteThreshold==="number")object.requestByteThreshold=options.longs===String?String(message.requestByteThreshold):message.requestByteThreshold;else object.requestByteThreshold=options.longs===String?$util.Long.prototype.toString.call(message.requestByteThreshold):options.longs===Number?new $util.LongBits(message.requestByteThreshold.low>>>0,message.requestByteThreshold.high>>>0).toNumber():message.requestByteThreshold;if(message.delayThreshold!=null&&message.hasOwnProperty("delayThreshold"))object.delayThreshold=$root.google.protobuf.Duration.toObject(message.delayThreshold,options);if(message.elementCountLimit!=null&&message.hasOwnProperty("elementCountLimit"))object.elementCountLimit=message.elementCountLimit;if(message.requestByteLimit!=null&&message.hasOwnProperty("requestByteLimit"))object.requestByteLimit=message.requestByteLimit;if(message.flowControlElementLimit!=null&&message.hasOwnProperty("flowControlElementLimit"))object.flowControlElementLimit=message.flowControlElementLimit;if(message.flowControlByteLimit!=null&&message.hasOwnProperty("flowControlByteLimit"))object.flowControlByteLimit=message.flowControlByteLimit;if(message.flowControlLimitExceededBehavior!=null&&message.hasOwnProperty("flowControlLimitExceededBehavior"))object.flowControlLimitExceededBehavior=options.enums===String?$root.google.api.FlowControlLimitExceededBehaviorProto[message.flowControlLimitExceededBehavior]===undefined?message.flowControlLimitExceededBehavior:$root.google.api.FlowControlLimitExceededBehaviorProto[message.flowControlLimitExceededBehavior]:message.flowControlLimitExceededBehavior;return object};BatchingSettingsProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BatchingSettingsProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.BatchingSettingsProto"};return BatchingSettingsProto}();api.FlowControlLimitExceededBehaviorProto=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="UNSET_BEHAVIOR"]=0;values[valuesById[1]="THROW_EXCEPTION"]=1;values[valuesById[2]="BLOCK"]=2;values[valuesById[3]="IGNORE"]=3;return values}();api.BatchingDescriptorProto=function(){function BatchingDescriptorProto(properties){this.discriminatorFields=[];if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)if(properties[keys[i]]!=null&&keys[i]!=="__proto__")this[keys[i]]=properties[keys[i]]}BatchingDescriptorProto.prototype.batchedField="";BatchingDescriptorProto.prototype.discriminatorFields=$util.emptyArray;BatchingDescriptorProto.prototype.subresponseField="";BatchingDescriptorProto.create=function create(properties){return new BatchingDescriptorProto(properties)};BatchingDescriptorProto.encode=function encode(message,writer){if(!writer)writer=$Writer.create();if(message.batchedField!=null&&Object.hasOwnProperty.call(message,"batchedField"))writer.uint32(10).string(message.batchedField);if(message.discriminatorFields!=null&&message.discriminatorFields.length)for(var i=0;i<message.discriminatorFields.length;++i)writer.uint32(18).string(message.discriminatorFields[i]);if(message.subresponseField!=null&&Object.hasOwnProperty.call(message,"subresponseField"))writer.uint32(26).string(message.subresponseField);return writer};BatchingDescriptorProto.encodeDelimited=function encodeDelimited(message,writer){return this.encode(message,writer).ldelim()};BatchingDescriptorProto.decode=function decode(reader,length,error,long){if(!(reader instanceof $Reader))reader=$Reader.create(reader);if(long===undefined)long=0;if(long>$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.BatchingDescriptorProto;while(reader.pos<end){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:{message.batchedField=reader.string();break}case 2:{if(!(message.discriminatorFields&&message.discriminatorFields.length))message.discriminatorFields=[];message.discriminatorFields.push(reader.string());break}case 3:{message.subresponseField=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};BatchingDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchingDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.batchedField!=null&&message.hasOwnProperty("batchedField"))if(!$util.isString(message.batchedField))return"batchedField: string expected";if(message.discriminatorFields!=null&&message.hasOwnProperty("discriminatorFields")){if(!Array.isArray(message.discriminatorFields))return"discriminatorFields: array expected";for(var i=0;i<message.discriminatorFields.length;++i)if(!$util.isString(message.discriminatorFields[i]))return"discriminatorFields: string[] expected"}if(message.subresponseField!=null&&message.hasOwnProperty("subresponseField"))if(!$util.isString(message.subresponseField))return"subresponseField: string expected";return null};BatchingDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.BatchingDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.BatchingDescriptorProto;if(object.batchedField!=null)message.batchedField=String(object.batchedField);if(object.discriminatorFields){if(!Array.isArray(object.discriminatorFields))throw TypeError(".google.api.BatchingDescriptorProto.discriminatorFields: array expected");message.discriminatorFields=[];for(var i=0;i<object.discriminatorFields.length;++i)message.discriminatorFields[i]=String(object.discriminatorFields[i])}if(object.subresponseField!=null)message.subresponseField=String(object.subresponseField);return message};BatchingDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.discriminatorFields=[];if(options.defaults){object.batchedField="";object.subresponseField=""}if(message.batchedField!=null&&message.hasOwnProperty("batchedField"))object.batchedField=message.batchedField;if(message.discriminatorFields&&message.discriminatorFields.length){object.discriminatorFields=[];for(var j=0;j<message.discriminatorFields.length;++j)object.discriminatorFields[j]=message.discriminatorFields[j]}if(message.subresponseField!=null&&message.hasOwnProperty("subresponseField"))object.subresponseField=message.subresponseField;return object};BatchingDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BatchingDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.BatchingDescriptorProto"};return BatchingDescriptorProto}();api.LaunchStage=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="LAUNCH_STAGE_UNSPECIFIED"]=0;values[valuesById[6]="UNIMPLEMENTED"]=6;values[valuesById[7]="PRELAUNCH"]=7;values[valuesById[1]="EARLY_ACCESS"]=1;values[valuesById[2]="ALPHA"]=2;values[valuesById[3]="BETA"]=3;values[valuesById[4]="GA"]=4;values[valuesById[5]="DEPRECATED"]=5;return values}();return api}();return google}();return $root});
|