Source: proto/spine/change/change_pb.js

// source: spine/change/change.proto
/**
 * @fileoverview
 * @enhanceable
 * @suppress {messageConventions} JS Compiler reports an error if a variable or
 *     field starts with 'MSG_' and isn't a translatable message.
 * @public
 */
// GENERATED CODE -- DO NOT EDIT!

var jspb = require('google-protobuf');
var goog = jspb;
var global = Function('return this')();

var spine_options_pb = require('../../spine/options_pb.js');
goog.object.extend(proto, spine_options_pb);
var google_protobuf_timestamp_pb = require('../../google/protobuf/timestamp_pb.js');
goog.object.extend(proto, google_protobuf_timestamp_pb);
goog.exportSymbol('proto.spine.change.BooleanChange', null, global);
goog.exportSymbol('proto.spine.change.BytesChange', null, global);
goog.exportSymbol('proto.spine.change.DoubleChange', null, global);
goog.exportSymbol('proto.spine.change.Fixed32Change', null, global);
goog.exportSymbol('proto.spine.change.Fixed64Change', null, global);
goog.exportSymbol('proto.spine.change.FloatChange', null, global);
goog.exportSymbol('proto.spine.change.Int32Change', null, global);
goog.exportSymbol('proto.spine.change.Int64Change', null, global);
goog.exportSymbol('proto.spine.change.SInt32Change', null, global);
goog.exportSymbol('proto.spine.change.SInt64Change', null, global);
goog.exportSymbol('proto.spine.change.Sfixed32Change', null, global);
goog.exportSymbol('proto.spine.change.Sfixed64Change', null, global);
goog.exportSymbol('proto.spine.change.StringChange', null, global);
goog.exportSymbol('proto.spine.change.TimestampChange', null, global);
goog.exportSymbol('proto.spine.change.UInt32Change', null, global);
goog.exportSymbol('proto.spine.change.UInt64Change', null, global);
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.StringChange = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.StringChange, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.StringChange.displayName = 'proto.spine.change.StringChange';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.TimestampChange = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.TimestampChange, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.TimestampChange.displayName = 'proto.spine.change.TimestampChange';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.DoubleChange = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.DoubleChange, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.DoubleChange.displayName = 'proto.spine.change.DoubleChange';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.FloatChange = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.FloatChange, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.FloatChange.displayName = 'proto.spine.change.FloatChange';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.Int32Change = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.Int32Change, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.Int32Change.displayName = 'proto.spine.change.Int32Change';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.Int64Change = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.Int64Change, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.Int64Change.displayName = 'proto.spine.change.Int64Change';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.UInt32Change = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.UInt32Change, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.UInt32Change.displayName = 'proto.spine.change.UInt32Change';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.UInt64Change = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.UInt64Change, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.UInt64Change.displayName = 'proto.spine.change.UInt64Change';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.SInt32Change = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.SInt32Change, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.SInt32Change.displayName = 'proto.spine.change.SInt32Change';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.SInt64Change = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.SInt64Change, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.SInt64Change.displayName = 'proto.spine.change.SInt64Change';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.Fixed32Change = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.Fixed32Change, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.Fixed32Change.displayName = 'proto.spine.change.Fixed32Change';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.Fixed64Change = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.Fixed64Change, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.Fixed64Change.displayName = 'proto.spine.change.Fixed64Change';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.Sfixed32Change = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.Sfixed32Change, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.Sfixed32Change.displayName = 'proto.spine.change.Sfixed32Change';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.Sfixed64Change = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.Sfixed64Change, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.Sfixed64Change.displayName = 'proto.spine.change.Sfixed64Change';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.BooleanChange = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.BooleanChange, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.BooleanChange.displayName = 'proto.spine.change.BooleanChange';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.spine.change.BytesChange = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.spine.change.BytesChange, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.spine.change.BytesChange.displayName = 'proto.spine.change.BytesChange';
}



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.StringChange.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.StringChange.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.StringChange} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.StringChange.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFieldWithDefault(msg, 1, ""),
    newValue: jspb.Message.getFieldWithDefault(msg, 2, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.StringChange}
 */
proto.spine.change.StringChange.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.StringChange;
  return proto.spine.change.StringChange.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.StringChange} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.StringChange}
 */
proto.spine.change.StringChange.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.StringChange.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.StringChange.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.StringChange} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.StringChange.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * optional string previous_value = 1;
 * @return {string}
 */
proto.spine.change.StringChange.prototype.getPreviousValue = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.spine.change.StringChange} returns this
 */
proto.spine.change.StringChange.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string new_value = 2;
 * @return {string}
 */
proto.spine.change.StringChange.prototype.getNewValue = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.spine.change.StringChange} returns this
 */
proto.spine.change.StringChange.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.TimestampChange.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.TimestampChange.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.TimestampChange} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.TimestampChange.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: (f = msg.getPreviousValue()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    newValue: (f = msg.getNewValue()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.TimestampChange}
 */
proto.spine.change.TimestampChange.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.TimestampChange;
  return proto.spine.change.TimestampChange.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.TimestampChange} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.TimestampChange}
 */
proto.spine.change.TimestampChange.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.TimestampChange.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.TimestampChange.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.TimestampChange} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.TimestampChange.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getNewValue();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.Timestamp previous_value = 1;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.spine.change.TimestampChange.prototype.getPreviousValue = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.spine.change.TimestampChange} returns this
*/
proto.spine.change.TimestampChange.prototype.setPreviousValue = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.spine.change.TimestampChange} returns this
 */
proto.spine.change.TimestampChange.prototype.clearPreviousValue = function() {
  return this.setPreviousValue(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.spine.change.TimestampChange.prototype.hasPreviousValue = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional google.protobuf.Timestamp new_value = 2;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.spine.change.TimestampChange.prototype.getNewValue = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.spine.change.TimestampChange} returns this
*/
proto.spine.change.TimestampChange.prototype.setNewValue = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.spine.change.TimestampChange} returns this
 */
proto.spine.change.TimestampChange.prototype.clearNewValue = function() {
  return this.setNewValue(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.spine.change.TimestampChange.prototype.hasNewValue = function() {
  return jspb.Message.getField(this, 2) != null;
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.DoubleChange.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.DoubleChange.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.DoubleChange} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.DoubleChange.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),
    newValue: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.DoubleChange}
 */
proto.spine.change.DoubleChange.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.DoubleChange;
  return proto.spine.change.DoubleChange.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.DoubleChange} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.DoubleChange}
 */
proto.spine.change.DoubleChange.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.DoubleChange.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.DoubleChange.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.DoubleChange} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.DoubleChange.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f !== 0.0) {
    writer.writeDouble(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f !== 0.0) {
    writer.writeDouble(
      2,
      f
    );
  }
};


/**
 * optional double previous_value = 1;
 * @return {number}
 */
proto.spine.change.DoubleChange.prototype.getPreviousValue = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.DoubleChange} returns this
 */
proto.spine.change.DoubleChange.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3FloatField(this, 1, value);
};


/**
 * optional double new_value = 2;
 * @return {number}
 */
proto.spine.change.DoubleChange.prototype.getNewValue = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.DoubleChange} returns this
 */
proto.spine.change.DoubleChange.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3FloatField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.FloatChange.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.FloatChange.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.FloatChange} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.FloatChange.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),
    newValue: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.FloatChange}
 */
proto.spine.change.FloatChange.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.FloatChange;
  return proto.spine.change.FloatChange.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.FloatChange} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.FloatChange}
 */
proto.spine.change.FloatChange.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.FloatChange.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.FloatChange.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.FloatChange} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.FloatChange.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f !== 0.0) {
    writer.writeFloat(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f !== 0.0) {
    writer.writeFloat(
      2,
      f
    );
  }
};


/**
 * optional float previous_value = 1;
 * @return {number}
 */
proto.spine.change.FloatChange.prototype.getPreviousValue = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.FloatChange} returns this
 */
proto.spine.change.FloatChange.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3FloatField(this, 1, value);
};


/**
 * optional float new_value = 2;
 * @return {number}
 */
proto.spine.change.FloatChange.prototype.getNewValue = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.FloatChange} returns this
 */
proto.spine.change.FloatChange.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3FloatField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.Int32Change.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.Int32Change.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.Int32Change} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.Int32Change.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newValue: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.Int32Change}
 */
proto.spine.change.Int32Change.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.Int32Change;
  return proto.spine.change.Int32Change.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.Int32Change} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.Int32Change}
 */
proto.spine.change.Int32Change.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.Int32Change.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.Int32Change.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.Int32Change} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.Int32Change.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
};


/**
 * optional int32 previous_value = 1;
 * @return {number}
 */
proto.spine.change.Int32Change.prototype.getPreviousValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.Int32Change} returns this
 */
proto.spine.change.Int32Change.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional int32 new_value = 2;
 * @return {number}
 */
proto.spine.change.Int32Change.prototype.getNewValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.Int32Change} returns this
 */
proto.spine.change.Int32Change.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.Int64Change.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.Int64Change.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.Int64Change} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.Int64Change.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newValue: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.Int64Change}
 */
proto.spine.change.Int64Change.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.Int64Change;
  return proto.spine.change.Int64Change.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.Int64Change} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.Int64Change}
 */
proto.spine.change.Int64Change.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.Int64Change.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.Int64Change.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.Int64Change} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.Int64Change.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f !== 0) {
    writer.writeInt64(
      2,
      f
    );
  }
};


/**
 * optional int64 previous_value = 1;
 * @return {number}
 */
proto.spine.change.Int64Change.prototype.getPreviousValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.Int64Change} returns this
 */
proto.spine.change.Int64Change.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional int64 new_value = 2;
 * @return {number}
 */
proto.spine.change.Int64Change.prototype.getNewValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.Int64Change} returns this
 */
proto.spine.change.Int64Change.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.UInt32Change.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.UInt32Change.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.UInt32Change} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.UInt32Change.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newValue: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.UInt32Change}
 */
proto.spine.change.UInt32Change.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.UInt32Change;
  return proto.spine.change.UInt32Change.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.UInt32Change} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.UInt32Change}
 */
proto.spine.change.UInt32Change.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.UInt32Change.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.UInt32Change.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.UInt32Change} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.UInt32Change.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f !== 0) {
    writer.writeUint32(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f !== 0) {
    writer.writeUint32(
      2,
      f
    );
  }
};


/**
 * optional uint32 previous_value = 1;
 * @return {number}
 */
proto.spine.change.UInt32Change.prototype.getPreviousValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.UInt32Change} returns this
 */
proto.spine.change.UInt32Change.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional uint32 new_value = 2;
 * @return {number}
 */
proto.spine.change.UInt32Change.prototype.getNewValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.UInt32Change} returns this
 */
proto.spine.change.UInt32Change.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.UInt64Change.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.UInt64Change.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.UInt64Change} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.UInt64Change.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newValue: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.UInt64Change}
 */
proto.spine.change.UInt64Change.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.UInt64Change;
  return proto.spine.change.UInt64Change.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.UInt64Change} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.UInt64Change}
 */
proto.spine.change.UInt64Change.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.UInt64Change.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.UInt64Change.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.UInt64Change} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.UInt64Change.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f !== 0) {
    writer.writeUint64(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f !== 0) {
    writer.writeUint64(
      2,
      f
    );
  }
};


/**
 * optional uint64 previous_value = 1;
 * @return {number}
 */
proto.spine.change.UInt64Change.prototype.getPreviousValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.UInt64Change} returns this
 */
proto.spine.change.UInt64Change.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional uint64 new_value = 2;
 * @return {number}
 */
proto.spine.change.UInt64Change.prototype.getNewValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.UInt64Change} returns this
 */
proto.spine.change.UInt64Change.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.SInt32Change.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.SInt32Change.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.SInt32Change} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.SInt32Change.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newValue: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.SInt32Change}
 */
proto.spine.change.SInt32Change.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.SInt32Change;
  return proto.spine.change.SInt32Change.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.SInt32Change} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.SInt32Change}
 */
proto.spine.change.SInt32Change.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readSint32());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readSint32());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.SInt32Change.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.SInt32Change.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.SInt32Change} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.SInt32Change.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f !== 0) {
    writer.writeSint32(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f !== 0) {
    writer.writeSint32(
      2,
      f
    );
  }
};


/**
 * optional sint32 previous_value = 1;
 * @return {number}
 */
proto.spine.change.SInt32Change.prototype.getPreviousValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.SInt32Change} returns this
 */
proto.spine.change.SInt32Change.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional sint32 new_value = 2;
 * @return {number}
 */
proto.spine.change.SInt32Change.prototype.getNewValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.SInt32Change} returns this
 */
proto.spine.change.SInt32Change.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.SInt64Change.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.SInt64Change.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.SInt64Change} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.SInt64Change.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newValue: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.SInt64Change}
 */
proto.spine.change.SInt64Change.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.SInt64Change;
  return proto.spine.change.SInt64Change.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.SInt64Change} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.SInt64Change}
 */
proto.spine.change.SInt64Change.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readSint64());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readSint64());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.SInt64Change.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.SInt64Change.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.SInt64Change} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.SInt64Change.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f !== 0) {
    writer.writeSint64(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f !== 0) {
    writer.writeSint64(
      2,
      f
    );
  }
};


/**
 * optional sint64 previous_value = 1;
 * @return {number}
 */
proto.spine.change.SInt64Change.prototype.getPreviousValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.SInt64Change} returns this
 */
proto.spine.change.SInt64Change.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional sint64 new_value = 2;
 * @return {number}
 */
proto.spine.change.SInt64Change.prototype.getNewValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.SInt64Change} returns this
 */
proto.spine.change.SInt64Change.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.Fixed32Change.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.Fixed32Change.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.Fixed32Change} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.Fixed32Change.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newValue: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.Fixed32Change}
 */
proto.spine.change.Fixed32Change.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.Fixed32Change;
  return proto.spine.change.Fixed32Change.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.Fixed32Change} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.Fixed32Change}
 */
proto.spine.change.Fixed32Change.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readFixed32());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readFixed32());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.Fixed32Change.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.Fixed32Change.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.Fixed32Change} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.Fixed32Change.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f !== 0) {
    writer.writeFixed32(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f !== 0) {
    writer.writeFixed32(
      2,
      f
    );
  }
};


/**
 * optional fixed32 previous_value = 1;
 * @return {number}
 */
proto.spine.change.Fixed32Change.prototype.getPreviousValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.Fixed32Change} returns this
 */
proto.spine.change.Fixed32Change.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional fixed32 new_value = 2;
 * @return {number}
 */
proto.spine.change.Fixed32Change.prototype.getNewValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.Fixed32Change} returns this
 */
proto.spine.change.Fixed32Change.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.Fixed64Change.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.Fixed64Change.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.Fixed64Change} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.Fixed64Change.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newValue: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.Fixed64Change}
 */
proto.spine.change.Fixed64Change.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.Fixed64Change;
  return proto.spine.change.Fixed64Change.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.Fixed64Change} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.Fixed64Change}
 */
proto.spine.change.Fixed64Change.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readFixed64());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readFixed64());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.Fixed64Change.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.Fixed64Change.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.Fixed64Change} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.Fixed64Change.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f !== 0) {
    writer.writeFixed64(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f !== 0) {
    writer.writeFixed64(
      2,
      f
    );
  }
};


/**
 * optional fixed64 previous_value = 1;
 * @return {number}
 */
proto.spine.change.Fixed64Change.prototype.getPreviousValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.Fixed64Change} returns this
 */
proto.spine.change.Fixed64Change.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional fixed64 new_value = 2;
 * @return {number}
 */
proto.spine.change.Fixed64Change.prototype.getNewValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.Fixed64Change} returns this
 */
proto.spine.change.Fixed64Change.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.Sfixed32Change.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.Sfixed32Change.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.Sfixed32Change} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.Sfixed32Change.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newValue: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.Sfixed32Change}
 */
proto.spine.change.Sfixed32Change.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.Sfixed32Change;
  return proto.spine.change.Sfixed32Change.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.Sfixed32Change} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.Sfixed32Change}
 */
proto.spine.change.Sfixed32Change.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readSfixed32());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readSfixed32());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.Sfixed32Change.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.Sfixed32Change.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.Sfixed32Change} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.Sfixed32Change.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f !== 0) {
    writer.writeSfixed32(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f !== 0) {
    writer.writeSfixed32(
      2,
      f
    );
  }
};


/**
 * optional sfixed32 previous_value = 1;
 * @return {number}
 */
proto.spine.change.Sfixed32Change.prototype.getPreviousValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.Sfixed32Change} returns this
 */
proto.spine.change.Sfixed32Change.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional sfixed32 new_value = 2;
 * @return {number}
 */
proto.spine.change.Sfixed32Change.prototype.getNewValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.Sfixed32Change} returns this
 */
proto.spine.change.Sfixed32Change.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.Sfixed64Change.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.Sfixed64Change.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.Sfixed64Change} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.Sfixed64Change.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newValue: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.Sfixed64Change}
 */
proto.spine.change.Sfixed64Change.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.Sfixed64Change;
  return proto.spine.change.Sfixed64Change.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.Sfixed64Change} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.Sfixed64Change}
 */
proto.spine.change.Sfixed64Change.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readSfixed64());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readSfixed64());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.Sfixed64Change.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.Sfixed64Change.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.Sfixed64Change} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.Sfixed64Change.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f !== 0) {
    writer.writeSfixed64(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f !== 0) {
    writer.writeSfixed64(
      2,
      f
    );
  }
};


/**
 * optional sfixed64 previous_value = 1;
 * @return {number}
 */
proto.spine.change.Sfixed64Change.prototype.getPreviousValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.Sfixed64Change} returns this
 */
proto.spine.change.Sfixed64Change.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional sfixed64 new_value = 2;
 * @return {number}
 */
proto.spine.change.Sfixed64Change.prototype.getNewValue = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.spine.change.Sfixed64Change} returns this
 */
proto.spine.change.Sfixed64Change.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.BooleanChange.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.BooleanChange.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.BooleanChange} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.BooleanChange.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
    newValue: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.BooleanChange}
 */
proto.spine.change.BooleanChange.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.BooleanChange;
  return proto.spine.change.BooleanChange.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.BooleanChange} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.BooleanChange}
 */
proto.spine.change.BooleanChange.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.BooleanChange.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.BooleanChange.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.BooleanChange} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.BooleanChange.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue();
  if (f) {
    writer.writeBool(
      1,
      f
    );
  }
  f = message.getNewValue();
  if (f) {
    writer.writeBool(
      2,
      f
    );
  }
};


/**
 * optional bool previous_value = 1;
 * @return {boolean}
 */
proto.spine.change.BooleanChange.prototype.getPreviousValue = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));
};


/**
 * @param {boolean} value
 * @return {!proto.spine.change.BooleanChange} returns this
 */
proto.spine.change.BooleanChange.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3BooleanField(this, 1, value);
};


/**
 * optional bool new_value = 2;
 * @return {boolean}
 */
proto.spine.change.BooleanChange.prototype.getNewValue = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));
};


/**
 * @param {boolean} value
 * @return {!proto.spine.change.BooleanChange} returns this
 */
proto.spine.change.BooleanChange.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3BooleanField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.spine.change.BytesChange.prototype.toObject = function(opt_includeInstance) {
  return proto.spine.change.BytesChange.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.spine.change.BytesChange} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.BytesChange.toObject = function(includeInstance, msg) {
  var f, obj = {
    previousValue: msg.getPreviousValue_asB64(),
    newValue: msg.getNewValue_asB64()
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.spine.change.BytesChange}
 */
proto.spine.change.BytesChange.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.spine.change.BytesChange;
  return proto.spine.change.BytesChange.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.spine.change.BytesChange} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.spine.change.BytesChange}
 */
proto.spine.change.BytesChange.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!Uint8Array} */ (reader.readBytes());
      msg.setPreviousValue(value);
      break;
    case 2:
      var value = /** @type {!Uint8Array} */ (reader.readBytes());
      msg.setNewValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.spine.change.BytesChange.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.spine.change.BytesChange.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.spine.change.BytesChange} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.spine.change.BytesChange.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPreviousValue_asU8();
  if (f.length > 0) {
    writer.writeBytes(
      1,
      f
    );
  }
  f = message.getNewValue_asU8();
  if (f.length > 0) {
    writer.writeBytes(
      2,
      f
    );
  }
};


/**
 * optional bytes previous_value = 1;
 * @return {string}
 */
proto.spine.change.BytesChange.prototype.getPreviousValue = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * optional bytes previous_value = 1;
 * This is a type-conversion wrapper around `getPreviousValue()`
 * @return {string}
 */
proto.spine.change.BytesChange.prototype.getPreviousValue_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(
      this.getPreviousValue()));
};


/**
 * optional bytes previous_value = 1;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getPreviousValue()`
 * @return {!Uint8Array}
 */
proto.spine.change.BytesChange.prototype.getPreviousValue_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(
      this.getPreviousValue()));
};


/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.spine.change.BytesChange} returns this
 */
proto.spine.change.BytesChange.prototype.setPreviousValue = function(value) {
  return jspb.Message.setProto3BytesField(this, 1, value);
};


/**
 * optional bytes new_value = 2;
 * @return {string}
 */
proto.spine.change.BytesChange.prototype.getNewValue = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * optional bytes new_value = 2;
 * This is a type-conversion wrapper around `getNewValue()`
 * @return {string}
 */
proto.spine.change.BytesChange.prototype.getNewValue_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(
      this.getNewValue()));
};


/**
 * optional bytes new_value = 2;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getNewValue()`
 * @return {!Uint8Array}
 */
proto.spine.change.BytesChange.prototype.getNewValue_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(
      this.getNewValue()));
};


/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.spine.change.BytesChange} returns this
 */
proto.spine.change.BytesChange.prototype.setNewValue = function(value) {
  return jspb.Message.setProto3BytesField(this, 2, value);
};


goog.object.extend(exports, proto.spine.change);

// Generated by Spine ProtoJs Plugin

let ObjectParser = require('../../../client/parser/object-parser.js').default;
let TypeParsers = require('../../../client/parser/type-parsers.js').default;

proto.spine.change.Int64Change.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.Int64Change.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.Int64Change.Parser.prototype.constructor = proto.spine.change.Int64Change.Parser;
proto.spine.change.Int64Change.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.Int64Change();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = parseInt(obj.previousValue);
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = parseInt(obj.newValue);
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.TimestampChange.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.TimestampChange.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.TimestampChange.Parser.prototype.constructor = proto.spine.change.TimestampChange.Parser;
proto.spine.change.TimestampChange.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.TimestampChange();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue === null) {
      msg.setPreviousValue(null);
    } else {
      let value = TypeParsers.parserFor('type.googleapis.com/google.protobuf.Timestamp').fromObject(obj.previousValue);
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue === null) {
      msg.setNewValue(null);
    } else {
      let value = TypeParsers.parserFor('type.googleapis.com/google.protobuf.Timestamp').fromObject(obj.newValue);
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.Fixed32Change.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.Fixed32Change.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.Fixed32Change.Parser.prototype.constructor = proto.spine.change.Fixed32Change.Parser;
proto.spine.change.Fixed32Change.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.Fixed32Change();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = obj.previousValue;
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = obj.newValue;
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.Sfixed64Change.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.Sfixed64Change.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.Sfixed64Change.Parser.prototype.constructor = proto.spine.change.Sfixed64Change.Parser;
proto.spine.change.Sfixed64Change.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.Sfixed64Change();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = parseInt(obj.previousValue);
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = parseInt(obj.newValue);
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.FloatChange.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.FloatChange.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.FloatChange.Parser.prototype.constructor = proto.spine.change.FloatChange.Parser;
proto.spine.change.FloatChange.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.FloatChange();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = parseFloat(obj.previousValue);
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = parseFloat(obj.newValue);
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.UInt32Change.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.UInt32Change.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.UInt32Change.Parser.prototype.constructor = proto.spine.change.UInt32Change.Parser;
proto.spine.change.UInt32Change.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.UInt32Change();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = obj.previousValue;
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = obj.newValue;
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.SInt32Change.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.SInt32Change.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.SInt32Change.Parser.prototype.constructor = proto.spine.change.SInt32Change.Parser;
proto.spine.change.SInt32Change.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.SInt32Change();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = obj.previousValue;
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = obj.newValue;
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.Int32Change.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.Int32Change.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.Int32Change.Parser.prototype.constructor = proto.spine.change.Int32Change.Parser;
proto.spine.change.Int32Change.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.Int32Change();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = obj.previousValue;
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = obj.newValue;
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.StringChange.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.StringChange.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.StringChange.Parser.prototype.constructor = proto.spine.change.StringChange.Parser;
proto.spine.change.StringChange.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.StringChange();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = obj.previousValue;
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = obj.newValue;
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.Fixed64Change.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.Fixed64Change.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.Fixed64Change.Parser.prototype.constructor = proto.spine.change.Fixed64Change.Parser;
proto.spine.change.Fixed64Change.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.Fixed64Change();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = parseInt(obj.previousValue);
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = parseInt(obj.newValue);
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.BooleanChange.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.BooleanChange.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.BooleanChange.Parser.prototype.constructor = proto.spine.change.BooleanChange.Parser;
proto.spine.change.BooleanChange.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.BooleanChange();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = obj.previousValue;
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = obj.newValue;
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.BytesChange.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.BytesChange.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.BytesChange.Parser.prototype.constructor = proto.spine.change.BytesChange.Parser;
proto.spine.change.BytesChange.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.BytesChange();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let base64 = require('base64-js');
      let value = base64.toByteArray(obj.previousValue);
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let base64 = require('base64-js');
      let value = base64.toByteArray(obj.newValue);
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.Sfixed32Change.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.Sfixed32Change.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.Sfixed32Change.Parser.prototype.constructor = proto.spine.change.Sfixed32Change.Parser;
proto.spine.change.Sfixed32Change.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.Sfixed32Change();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = obj.previousValue;
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = obj.newValue;
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.DoubleChange.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.DoubleChange.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.DoubleChange.Parser.prototype.constructor = proto.spine.change.DoubleChange.Parser;
proto.spine.change.DoubleChange.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.DoubleChange();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = parseFloat(obj.previousValue);
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = parseFloat(obj.newValue);
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.SInt64Change.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.SInt64Change.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.SInt64Change.Parser.prototype.constructor = proto.spine.change.SInt64Change.Parser;
proto.spine.change.SInt64Change.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.SInt64Change();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = parseInt(obj.previousValue);
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = parseInt(obj.newValue);
      msg.setNewValue(value);
    }
  }
  return msg;
};

proto.spine.change.UInt64Change.Parser = function() {
  ObjectParser.call(this);
};
proto.spine.change.UInt64Change.Parser.prototype = Object.create(ObjectParser.prototype);
proto.spine.change.UInt64Change.Parser.prototype.constructor = proto.spine.change.UInt64Change.Parser;
proto.spine.change.UInt64Change.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.spine.change.UInt64Change();
  
  if (obj.previousValue !== undefined) {
    if (obj.previousValue !== null) {
      let value = parseInt(obj.previousValue);
      msg.setPreviousValue(value);
    }
  }
  
  if (obj.newValue !== undefined) {
    if (obj.newValue !== null) {
      let value = parseInt(obj.newValue);
      msg.setNewValue(value);
    }
  }
  return msg;
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.Int64Change.typeUrl = function() {
  return 'type.spine.io/spine.change.Int64Change';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.TimestampChange.typeUrl = function() {
  return 'type.spine.io/spine.change.TimestampChange';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.Fixed32Change.typeUrl = function() {
  return 'type.spine.io/spine.change.Fixed32Change';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.Sfixed64Change.typeUrl = function() {
  return 'type.spine.io/spine.change.Sfixed64Change';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.FloatChange.typeUrl = function() {
  return 'type.spine.io/spine.change.FloatChange';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.UInt32Change.typeUrl = function() {
  return 'type.spine.io/spine.change.UInt32Change';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.SInt32Change.typeUrl = function() {
  return 'type.spine.io/spine.change.SInt32Change';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.Int32Change.typeUrl = function() {
  return 'type.spine.io/spine.change.Int32Change';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.StringChange.typeUrl = function() {
  return 'type.spine.io/spine.change.StringChange';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.Fixed64Change.typeUrl = function() {
  return 'type.spine.io/spine.change.Fixed64Change';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.BooleanChange.typeUrl = function() {
  return 'type.spine.io/spine.change.BooleanChange';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.BytesChange.typeUrl = function() {
  return 'type.spine.io/spine.change.BytesChange';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.Sfixed32Change.typeUrl = function() {
  return 'type.spine.io/spine.change.Sfixed32Change';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.DoubleChange.typeUrl = function() {
  return 'type.spine.io/spine.change.DoubleChange';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.SInt64Change.typeUrl = function() {
  return 'type.spine.io/spine.change.SInt64Change';
};

// Generated by Spine ProtoJs Plugin
proto.spine.change.UInt64Change.typeUrl = function() {
  return 'type.spine.io/spine.change.UInt64Change';
};