// source: admin.proto
/**
 * @fileoverview
 * @enhanceable
 * @suppress {missingRequire} reports error on implicit type usages.
 * @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!
/* eslint-disable */
// @ts-nocheck

var jspb = require('google-protobuf');
var goog = jspb;
var global =
    (typeof globalThis !== 'undefined' && globalThis) ||
    (typeof window !== 'undefined' && window) ||
    (typeof global !== 'undefined' && global) ||
    (typeof self !== 'undefined' && self) ||
    (function () { return this; }).call(null) ||
    Function('return this')();

var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js');
goog.object.extend(proto, google_protobuf_empty_pb);
var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');
goog.object.extend(proto, google_protobuf_timestamp_pb);
var google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js');
goog.object.extend(proto, google_protobuf_wrappers_pb);
var annotations_pb = require('./annotations_pb.js');
goog.object.extend(proto, annotations_pb);
var api_pb = require('./api_pb.js');
goog.object.extend(proto, api_pb);
goog.exportSymbol('proto.org.couchers.admin.AccessStat', null, global);
goog.exportSymbol('proto.org.couchers.admin.AccessStatsReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.AccessStatsRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.AddAdminNoteReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.AddAdminTagToUserReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.AddBadgeReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.AddUsersToModerationUserListReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.AddUsersToModerationUserListRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.AdminActionLevel', null, global);
goog.exportSymbol('proto.org.couchers.admin.AdminActionLog', null, global);
goog.exportSymbol('proto.org.couchers.admin.AdminDeleteDiscussionReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.AdminFriendRequest', null, global);
goog.exportSymbol('proto.org.couchers.admin.AdminGroupChat', null, global);
goog.exportSymbol('proto.org.couchers.admin.AdminHostRequest', null, global);
goog.exportSymbol('proto.org.couchers.admin.AdminReference', null, global);
goog.exportSymbol('proto.org.couchers.admin.AdminTagInfo', null, global);
goog.exportSymbol('proto.org.couchers.admin.AdminUserBlock', null, global);
goog.exportSymbol('proto.org.couchers.admin.BanOTAPackageReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.BanUserReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.ChangeUserBirthdateReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.ChangeUserGenderReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.ChatMessage', null, global);
goog.exportSymbol('proto.org.couchers.admin.ChatUserInfo', null, global);
goog.exportSymbol('proto.org.couchers.admin.ContentReport', null, global);
goog.exportSymbol('proto.org.couchers.admin.CreateAccountDeletionLinkReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.CreateAccountDeletionLinkRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.CreateAdminTagReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.CreateApiKeyReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.CreateApiKeyRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.CreateOTAPackageReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.DeleteEventReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.DeleteReferenceReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.DeleteUserReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.EditDiscussionReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.EditReferenceTextReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.EditReplyReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetChatsReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetChatsRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetContentReportReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetContentReportRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetContentReportsForAuthorReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetContentReportsForAuthorRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetFriendRequestsReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetFriendRequestsRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetNonvisibleUserAccessLogReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetNonvisibleUserAccessLogRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetUserBlocksReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetUserBlocksRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetUserDetailsReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetUserReferencesReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetUserReferencesRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.GetUserReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.GroupChatMember', null, global);
goog.exportSymbol('proto.org.couchers.admin.ListAdminActionsReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.ListAdminActionsRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.ListAdminTagsReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.ListAdminTagsRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.ListModerationUserListsReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.ListModerationUserListsRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.ListOTAPackagesReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.ListOTAPackagesRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.ListUserIdsReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.ListUserIdsRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.ListUserUploadsReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.ListUserUploadsRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.ModerationList', null, global);
goog.exportSymbol('proto.org.couchers.admin.NonvisibleUserAccessLogEntry', null, global);
goog.exportSymbol('proto.org.couchers.admin.NonvisibleUserAccessType', null, global);
goog.exportSymbol('proto.org.couchers.admin.NonvisibleUserState', null, global);
goog.exportSymbol('proto.org.couchers.admin.OTAPackage', null, global);
goog.exportSymbol('proto.org.couchers.admin.OTAPlatform', null, global);
goog.exportSymbol('proto.org.couchers.admin.RecoverDeletedUserReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.RemoveAdminTagFromUserReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.RemoveBadgeReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.RemoveUserFromModerationUserListReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.SearchUsersReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.SearchUsersRes', null, global);
goog.exportSymbol('proto.org.couchers.admin.SendModNoteReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.SetLastDonatedReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.SetModScoreReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.SetPassportSexGenderExceptionReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.ShadowUserReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.UnbanUserReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.UnshadowUserReq', null, global);
goog.exportSymbol('proto.org.couchers.admin.UploadUse', null, global);
goog.exportSymbol('proto.org.couchers.admin.UploadUseType', null, global);
goog.exportSymbol('proto.org.couchers.admin.UserDetails', null, global);
goog.exportSymbol('proto.org.couchers.admin.UserUpload', 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.org.couchers.admin.AdminActionLog = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.AdminActionLog, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AdminActionLog.displayName = 'proto.org.couchers.admin.AdminActionLog';
}
/**
 * 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.org.couchers.admin.AdminTagInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.AdminTagInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AdminTagInfo.displayName = 'proto.org.couchers.admin.AdminTagInfo';
}
/**
 * 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.org.couchers.admin.UserDetails = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.UserDetails.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.UserDetails, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.UserDetails.displayName = 'proto.org.couchers.admin.UserDetails';
}
/**
 * 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.org.couchers.admin.GetUserDetailsReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.GetUserDetailsReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetUserDetailsReq.displayName = 'proto.org.couchers.admin.GetUserDetailsReq';
}
/**
 * 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.org.couchers.admin.GetUserReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.GetUserReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetUserReq.displayName = 'proto.org.couchers.admin.GetUserReq';
}
/**
 * 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.org.couchers.admin.SearchUsersReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.SearchUsersReq.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.SearchUsersReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.SearchUsersReq.displayName = 'proto.org.couchers.admin.SearchUsersReq';
}
/**
 * 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.org.couchers.admin.SearchUsersRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.SearchUsersRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.SearchUsersRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.SearchUsersRes.displayName = 'proto.org.couchers.admin.SearchUsersRes';
}
/**
 * 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.org.couchers.admin.ChangeUserGenderReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.ChangeUserGenderReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ChangeUserGenderReq.displayName = 'proto.org.couchers.admin.ChangeUserGenderReq';
}
/**
 * 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.org.couchers.admin.ChangeUserBirthdateReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.ChangeUserBirthdateReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ChangeUserBirthdateReq.displayName = 'proto.org.couchers.admin.ChangeUserBirthdateReq';
}
/**
 * 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.org.couchers.admin.AddBadgeReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.AddBadgeReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AddBadgeReq.displayName = 'proto.org.couchers.admin.AddBadgeReq';
}
/**
 * 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.org.couchers.admin.RemoveBadgeReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.RemoveBadgeReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.RemoveBadgeReq.displayName = 'proto.org.couchers.admin.RemoveBadgeReq';
}
/**
 * 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.org.couchers.admin.SetPassportSexGenderExceptionReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.SetPassportSexGenderExceptionReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.SetPassportSexGenderExceptionReq.displayName = 'proto.org.couchers.admin.SetPassportSexGenderExceptionReq';
}
/**
 * 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.org.couchers.admin.BanUserReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.BanUserReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.BanUserReq.displayName = 'proto.org.couchers.admin.BanUserReq';
}
/**
 * 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.org.couchers.admin.UnbanUserReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.UnbanUserReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.UnbanUserReq.displayName = 'proto.org.couchers.admin.UnbanUserReq';
}
/**
 * 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.org.couchers.admin.ShadowUserReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.ShadowUserReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ShadowUserReq.displayName = 'proto.org.couchers.admin.ShadowUserReq';
}
/**
 * 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.org.couchers.admin.UnshadowUserReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.UnshadowUserReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.UnshadowUserReq.displayName = 'proto.org.couchers.admin.UnshadowUserReq';
}
/**
 * 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.org.couchers.admin.AddAdminNoteReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.AddAdminNoteReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AddAdminNoteReq.displayName = 'proto.org.couchers.admin.AddAdminNoteReq';
}
/**
 * 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.org.couchers.admin.ContentReport = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.ContentReport, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ContentReport.displayName = 'proto.org.couchers.admin.ContentReport';
}
/**
 * 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.org.couchers.admin.GetContentReportReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.GetContentReportReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetContentReportReq.displayName = 'proto.org.couchers.admin.GetContentReportReq';
}
/**
 * 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.org.couchers.admin.GetContentReportRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.GetContentReportRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetContentReportRes.displayName = 'proto.org.couchers.admin.GetContentReportRes';
}
/**
 * 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.org.couchers.admin.GetContentReportsForAuthorReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.GetContentReportsForAuthorReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetContentReportsForAuthorReq.displayName = 'proto.org.couchers.admin.GetContentReportsForAuthorReq';
}
/**
 * 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.org.couchers.admin.GetContentReportsForAuthorRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.GetContentReportsForAuthorRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.GetContentReportsForAuthorRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetContentReportsForAuthorRes.displayName = 'proto.org.couchers.admin.GetContentReportsForAuthorRes';
}
/**
 * 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.org.couchers.admin.SendModNoteReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.SendModNoteReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.SendModNoteReq.displayName = 'proto.org.couchers.admin.SendModNoteReq';
}
/**
 * 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.org.couchers.admin.MarkUserNeedsLocationUpdateReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq.displayName = 'proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq';
}
/**
 * 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.org.couchers.admin.DeleteUserReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.DeleteUserReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.DeleteUserReq.displayName = 'proto.org.couchers.admin.DeleteUserReq';
}
/**
 * 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.org.couchers.admin.RecoverDeletedUserReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.RecoverDeletedUserReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.RecoverDeletedUserReq.displayName = 'proto.org.couchers.admin.RecoverDeletedUserReq';
}
/**
 * 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.org.couchers.admin.CreateApiKeyReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.CreateApiKeyReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.CreateApiKeyReq.displayName = 'proto.org.couchers.admin.CreateApiKeyReq';
}
/**
 * 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.org.couchers.admin.CreateApiKeyRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.CreateApiKeyRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.CreateApiKeyRes.displayName = 'proto.org.couchers.admin.CreateApiKeyRes';
}
/**
 * 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.org.couchers.admin.GetChatsReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.GetChatsReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetChatsReq.displayName = 'proto.org.couchers.admin.GetChatsReq';
}
/**
 * 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.org.couchers.admin.ChatUserInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.ChatUserInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ChatUserInfo.displayName = 'proto.org.couchers.admin.ChatUserInfo';
}
/**
 * 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.org.couchers.admin.ChatMessage = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.ChatMessage, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ChatMessage.displayName = 'proto.org.couchers.admin.ChatMessage';
}
/**
 * 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.org.couchers.admin.GroupChatMember = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.GroupChatMember, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GroupChatMember.displayName = 'proto.org.couchers.admin.GroupChatMember';
}
/**
 * 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.org.couchers.admin.AdminGroupChat = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.AdminGroupChat.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.AdminGroupChat, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AdminGroupChat.displayName = 'proto.org.couchers.admin.AdminGroupChat';
}
/**
 * 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.org.couchers.admin.AdminHostRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.AdminHostRequest.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.AdminHostRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AdminHostRequest.displayName = 'proto.org.couchers.admin.AdminHostRequest';
}
/**
 * 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.org.couchers.admin.GetChatsRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.GetChatsRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.GetChatsRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetChatsRes.displayName = 'proto.org.couchers.admin.GetChatsRes';
}
/**
 * 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.org.couchers.admin.DeleteEventReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.DeleteEventReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.DeleteEventReq.displayName = 'proto.org.couchers.admin.DeleteEventReq';
}
/**
 * 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.org.couchers.admin.ListUserIdsReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.ListUserIdsReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ListUserIdsReq.displayName = 'proto.org.couchers.admin.ListUserIdsReq';
}
/**
 * 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.org.couchers.admin.ListUserIdsRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.ListUserIdsRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.ListUserIdsRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ListUserIdsRes.displayName = 'proto.org.couchers.admin.ListUserIdsRes';
}
/**
 * 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.org.couchers.admin.EditReferenceTextReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.EditReferenceTextReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.EditReferenceTextReq.displayName = 'proto.org.couchers.admin.EditReferenceTextReq';
}
/**
 * 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.org.couchers.admin.DeleteReferenceReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.DeleteReferenceReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.DeleteReferenceReq.displayName = 'proto.org.couchers.admin.DeleteReferenceReq';
}
/**
 * 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.org.couchers.admin.GetUserReferencesReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.GetUserReferencesReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetUserReferencesReq.displayName = 'proto.org.couchers.admin.GetUserReferencesReq';
}
/**
 * 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.org.couchers.admin.AdminReference = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.AdminReference, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AdminReference.displayName = 'proto.org.couchers.admin.AdminReference';
}
/**
 * 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.org.couchers.admin.GetUserReferencesRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.GetUserReferencesRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.GetUserReferencesRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetUserReferencesRes.displayName = 'proto.org.couchers.admin.GetUserReferencesRes';
}
/**
 * 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.org.couchers.admin.GetFriendRequestsReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.GetFriendRequestsReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetFriendRequestsReq.displayName = 'proto.org.couchers.admin.GetFriendRequestsReq';
}
/**
 * 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.org.couchers.admin.AdminFriendRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.AdminFriendRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AdminFriendRequest.displayName = 'proto.org.couchers.admin.AdminFriendRequest';
}
/**
 * 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.org.couchers.admin.GetFriendRequestsRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.GetFriendRequestsRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.GetFriendRequestsRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetFriendRequestsRes.displayName = 'proto.org.couchers.admin.GetFriendRequestsRes';
}
/**
 * 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.org.couchers.admin.GetUserBlocksReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.GetUserBlocksReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetUserBlocksReq.displayName = 'proto.org.couchers.admin.GetUserBlocksReq';
}
/**
 * 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.org.couchers.admin.AdminUserBlock = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.AdminUserBlock, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AdminUserBlock.displayName = 'proto.org.couchers.admin.AdminUserBlock';
}
/**
 * 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.org.couchers.admin.GetUserBlocksRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.GetUserBlocksRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.GetUserBlocksRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetUserBlocksRes.displayName = 'proto.org.couchers.admin.GetUserBlocksRes';
}
/**
 * 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.org.couchers.admin.GetNonvisibleUserAccessLogReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.GetNonvisibleUserAccessLogReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetNonvisibleUserAccessLogReq.displayName = 'proto.org.couchers.admin.GetNonvisibleUserAccessLogReq';
}
/**
 * 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.org.couchers.admin.NonvisibleUserAccessLogEntry = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.NonvisibleUserAccessLogEntry, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.NonvisibleUserAccessLogEntry.displayName = 'proto.org.couchers.admin.NonvisibleUserAccessLogEntry';
}
/**
 * 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.org.couchers.admin.GetNonvisibleUserAccessLogRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.GetNonvisibleUserAccessLogRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.GetNonvisibleUserAccessLogRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.GetNonvisibleUserAccessLogRes.displayName = 'proto.org.couchers.admin.GetNonvisibleUserAccessLogRes';
}
/**
 * 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.org.couchers.admin.EditDiscussionReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.EditDiscussionReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.EditDiscussionReq.displayName = 'proto.org.couchers.admin.EditDiscussionReq';
}
/**
 * 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.org.couchers.admin.AdminDeleteDiscussionReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.AdminDeleteDiscussionReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AdminDeleteDiscussionReq.displayName = 'proto.org.couchers.admin.AdminDeleteDiscussionReq';
}
/**
 * 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.org.couchers.admin.EditReplyReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.EditReplyReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.EditReplyReq.displayName = 'proto.org.couchers.admin.EditReplyReq';
}
/**
 * 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.org.couchers.admin.AddUsersToModerationUserListReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.AddUsersToModerationUserListReq.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.AddUsersToModerationUserListReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AddUsersToModerationUserListReq.displayName = 'proto.org.couchers.admin.AddUsersToModerationUserListReq';
}
/**
 * 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.org.couchers.admin.ListModerationUserListsReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.ListModerationUserListsReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ListModerationUserListsReq.displayName = 'proto.org.couchers.admin.ListModerationUserListsReq';
}
/**
 * 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.org.couchers.admin.ModerationList = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.ModerationList.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.ModerationList, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ModerationList.displayName = 'proto.org.couchers.admin.ModerationList';
}
/**
 * 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.org.couchers.admin.ListModerationUserListsRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.ListModerationUserListsRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.ListModerationUserListsRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ListModerationUserListsRes.displayName = 'proto.org.couchers.admin.ListModerationUserListsRes';
}
/**
 * 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.org.couchers.admin.AddUsersToModerationUserListRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.AddUsersToModerationUserListRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AddUsersToModerationUserListRes.displayName = 'proto.org.couchers.admin.AddUsersToModerationUserListRes';
}
/**
 * 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.org.couchers.admin.RemoveUserFromModerationUserListReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.RemoveUserFromModerationUserListReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.RemoveUserFromModerationUserListReq.displayName = 'proto.org.couchers.admin.RemoveUserFromModerationUserListReq';
}
/**
 * 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.org.couchers.admin.CreateAccountDeletionLinkReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.CreateAccountDeletionLinkReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.CreateAccountDeletionLinkReq.displayName = 'proto.org.couchers.admin.CreateAccountDeletionLinkReq';
}
/**
 * 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.org.couchers.admin.CreateAccountDeletionLinkRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.CreateAccountDeletionLinkRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.CreateAccountDeletionLinkRes.displayName = 'proto.org.couchers.admin.CreateAccountDeletionLinkRes';
}
/**
 * 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.org.couchers.admin.AccessStatsReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.AccessStatsReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AccessStatsReq.displayName = 'proto.org.couchers.admin.AccessStatsReq';
}
/**
 * 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.org.couchers.admin.AccessStat = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.AccessStat, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AccessStat.displayName = 'proto.org.couchers.admin.AccessStat';
}
/**
 * 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.org.couchers.admin.AccessStatsRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.AccessStatsRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.AccessStatsRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AccessStatsRes.displayName = 'proto.org.couchers.admin.AccessStatsRes';
}
/**
 * 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.org.couchers.admin.SetLastDonatedReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.SetLastDonatedReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.SetLastDonatedReq.displayName = 'proto.org.couchers.admin.SetLastDonatedReq';
}
/**
 * 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.org.couchers.admin.CreateAdminTagReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.CreateAdminTagReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.CreateAdminTagReq.displayName = 'proto.org.couchers.admin.CreateAdminTagReq';
}
/**
 * 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.org.couchers.admin.ListAdminTagsReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.ListAdminTagsReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ListAdminTagsReq.displayName = 'proto.org.couchers.admin.ListAdminTagsReq';
}
/**
 * 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.org.couchers.admin.ListAdminTagsRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.ListAdminTagsRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.ListAdminTagsRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ListAdminTagsRes.displayName = 'proto.org.couchers.admin.ListAdminTagsRes';
}
/**
 * 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.org.couchers.admin.AddAdminTagToUserReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.AddAdminTagToUserReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.AddAdminTagToUserReq.displayName = 'proto.org.couchers.admin.AddAdminTagToUserReq';
}
/**
 * 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.org.couchers.admin.RemoveAdminTagFromUserReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.RemoveAdminTagFromUserReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.RemoveAdminTagFromUserReq.displayName = 'proto.org.couchers.admin.RemoveAdminTagFromUserReq';
}
/**
 * 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.org.couchers.admin.SetModScoreReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.SetModScoreReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.SetModScoreReq.displayName = 'proto.org.couchers.admin.SetModScoreReq';
}
/**
 * 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.org.couchers.admin.ListAdminActionsReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.ListAdminActionsReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ListAdminActionsReq.displayName = 'proto.org.couchers.admin.ListAdminActionsReq';
}
/**
 * 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.org.couchers.admin.ListAdminActionsRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.ListAdminActionsRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.ListAdminActionsRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ListAdminActionsRes.displayName = 'proto.org.couchers.admin.ListAdminActionsRes';
}
/**
 * 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.org.couchers.admin.ListUserUploadsReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.ListUserUploadsReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ListUserUploadsReq.displayName = 'proto.org.couchers.admin.ListUserUploadsReq';
}
/**
 * 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.org.couchers.admin.UploadUse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.UploadUse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.UploadUse.displayName = 'proto.org.couchers.admin.UploadUse';
}
/**
 * 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.org.couchers.admin.UserUpload = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.UserUpload.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.UserUpload, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.UserUpload.displayName = 'proto.org.couchers.admin.UserUpload';
}
/**
 * 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.org.couchers.admin.ListUserUploadsRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.ListUserUploadsRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.ListUserUploadsRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ListUserUploadsRes.displayName = 'proto.org.couchers.admin.ListUserUploadsRes';
}
/**
 * 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.org.couchers.admin.OTAPackage = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.OTAPackage, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.OTAPackage.displayName = 'proto.org.couchers.admin.OTAPackage';
}
/**
 * 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.org.couchers.admin.CreateOTAPackageReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.CreateOTAPackageReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.CreateOTAPackageReq.displayName = 'proto.org.couchers.admin.CreateOTAPackageReq';
}
/**
 * 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.org.couchers.admin.ListOTAPackagesReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.ListOTAPackagesReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ListOTAPackagesReq.displayName = 'proto.org.couchers.admin.ListOTAPackagesReq';
}
/**
 * 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.org.couchers.admin.ListOTAPackagesRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.admin.ListOTAPackagesRes.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.admin.ListOTAPackagesRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.ListOTAPackagesRes.displayName = 'proto.org.couchers.admin.ListOTAPackagesRes';
}
/**
 * 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.org.couchers.admin.BanOTAPackageReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.admin.BanOTAPackageReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.admin.BanOTAPackageReq.displayName = 'proto.org.couchers.admin.BanOTAPackageReq';
}



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.org.couchers.admin.AdminActionLog.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AdminActionLog.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.org.couchers.admin.AdminActionLog} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminActionLog.toObject = function(includeInstance, msg) {
  var f, obj = {
    adminActionId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    created: (f = msg.getCreated()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    adminUserId: jspb.Message.getFieldWithDefault(msg, 3, 0),
    adminUsername: jspb.Message.getFieldWithDefault(msg, 4, ""),
    actionType: jspb.Message.getFieldWithDefault(msg, 5, ""),
    note: jspb.Message.getFieldWithDefault(msg, 6, ""),
    tag: jspb.Message.getFieldWithDefault(msg, 7, ""),
    level: jspb.Message.getFieldWithDefault(msg, 8, 0),
    targetUserId: jspb.Message.getFieldWithDefault(msg, 9, 0),
    targetUsername: jspb.Message.getFieldWithDefault(msg, 10, ""),
    data: jspb.Message.getFieldWithDefault(msg, 11, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AdminActionLog} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AdminActionLog}
 */
proto.org.couchers.admin.AdminActionLog.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.setAdminActionId(value);
      break;
    case 2:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setCreated(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setAdminUserId(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setAdminUsername(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setActionType(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setNote(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setTag(value);
      break;
    case 8:
      var value = /** @type {!proto.org.couchers.admin.AdminActionLevel} */ (reader.readEnum());
      msg.setLevel(value);
      break;
    case 9:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setTargetUserId(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setTargetUsername(value);
      break;
    case 11:
      var value = /** @type {string} */ (reader.readString());
      msg.setData(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.AdminActionLog} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminActionLog.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getAdminActionId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getCreated();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getAdminUserId();
  if (f !== 0) {
    writer.writeInt64(
      3,
      f
    );
  }
  f = message.getAdminUsername();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getActionType();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getNote();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getTag();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getLevel();
  if (f !== 0.0) {
    writer.writeEnum(
      8,
      f
    );
  }
  f = message.getTargetUserId();
  if (f !== 0) {
    writer.writeInt64(
      9,
      f
    );
  }
  f = message.getTargetUsername();
  if (f.length > 0) {
    writer.writeString(
      10,
      f
    );
  }
  f = message.getData();
  if (f.length > 0) {
    writer.writeString(
      11,
      f
    );
  }
};


/**
 * optional int64 admin_action_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.AdminActionLog.prototype.getAdminActionId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminActionLog} returns this
 */
proto.org.couchers.admin.AdminActionLog.prototype.setAdminActionId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional google.protobuf.Timestamp created = 2;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.AdminActionLog.prototype.getCreated = 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.org.couchers.admin.AdminActionLog} returns this
*/
proto.org.couchers.admin.AdminActionLog.prototype.setCreated = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminActionLog} returns this
 */
proto.org.couchers.admin.AdminActionLog.prototype.clearCreated = function() {
  return this.setCreated(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminActionLog.prototype.hasCreated = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional int64 admin_user_id = 3;
 * @return {number}
 */
proto.org.couchers.admin.AdminActionLog.prototype.getAdminUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminActionLog} returns this
 */
proto.org.couchers.admin.AdminActionLog.prototype.setAdminUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional string admin_username = 4;
 * @return {string}
 */
proto.org.couchers.admin.AdminActionLog.prototype.getAdminUsername = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminActionLog} returns this
 */
proto.org.couchers.admin.AdminActionLog.prototype.setAdminUsername = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string action_type = 5;
 * @return {string}
 */
proto.org.couchers.admin.AdminActionLog.prototype.getActionType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminActionLog} returns this
 */
proto.org.couchers.admin.AdminActionLog.prototype.setActionType = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string note = 6;
 * @return {string}
 */
proto.org.couchers.admin.AdminActionLog.prototype.getNote = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminActionLog} returns this
 */
proto.org.couchers.admin.AdminActionLog.prototype.setNote = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string tag = 7;
 * @return {string}
 */
proto.org.couchers.admin.AdminActionLog.prototype.getTag = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminActionLog} returns this
 */
proto.org.couchers.admin.AdminActionLog.prototype.setTag = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional AdminActionLevel level = 8;
 * @return {!proto.org.couchers.admin.AdminActionLevel}
 */
proto.org.couchers.admin.AdminActionLog.prototype.getLevel = function() {
  return /** @type {!proto.org.couchers.admin.AdminActionLevel} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
};


/**
 * @param {!proto.org.couchers.admin.AdminActionLevel} value
 * @return {!proto.org.couchers.admin.AdminActionLog} returns this
 */
proto.org.couchers.admin.AdminActionLog.prototype.setLevel = function(value) {
  return jspb.Message.setProto3EnumField(this, 8, value);
};


/**
 * optional int64 target_user_id = 9;
 * @return {number}
 */
proto.org.couchers.admin.AdminActionLog.prototype.getTargetUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminActionLog} returns this
 */
proto.org.couchers.admin.AdminActionLog.prototype.setTargetUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 9, value);
};


/**
 * optional string target_username = 10;
 * @return {string}
 */
proto.org.couchers.admin.AdminActionLog.prototype.getTargetUsername = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminActionLog} returns this
 */
proto.org.couchers.admin.AdminActionLog.prototype.setTargetUsername = function(value) {
  return jspb.Message.setProto3StringField(this, 10, value);
};


/**
 * optional string data = 11;
 * @return {string}
 */
proto.org.couchers.admin.AdminActionLog.prototype.getData = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminActionLog} returns this
 */
proto.org.couchers.admin.AdminActionLog.prototype.setData = function(value) {
  return jspb.Message.setProto3StringField(this, 11, 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.org.couchers.admin.AdminTagInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AdminTagInfo.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.org.couchers.admin.AdminTagInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminTagInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    adminTagId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    tag: 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.org.couchers.admin.AdminTagInfo}
 */
proto.org.couchers.admin.AdminTagInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.AdminTagInfo;
  return proto.org.couchers.admin.AdminTagInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AdminTagInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AdminTagInfo}
 */
proto.org.couchers.admin.AdminTagInfo.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.setAdminTagId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setTag(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional int64 admin_tag_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.AdminTagInfo.prototype.getAdminTagId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminTagInfo} returns this
 */
proto.org.couchers.admin.AdminTagInfo.prototype.setAdminTagId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string tag = 2;
 * @return {string}
 */
proto.org.couchers.admin.AdminTagInfo.prototype.getTag = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminTagInfo} returns this
 */
proto.org.couchers.admin.AdminTagInfo.prototype.setTag = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.UserDetails.repeatedFields_ = [8,18,19];



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.org.couchers.admin.UserDetails.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.UserDetails.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.org.couchers.admin.UserDetails} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.UserDetails.toObject = function(includeInstance, msg) {
  var f, obj = {
    userId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    username: jspb.Message.getFieldWithDefault(msg, 2, ""),
    name: jspb.Message.getFieldWithDefault(msg, 14, ""),
    email: jspb.Message.getFieldWithDefault(msg, 3, ""),
    gender: jspb.Message.getFieldWithDefault(msg, 4, ""),
    birthdate: jspb.Message.getFieldWithDefault(msg, 7, ""),
    banned: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
    deleted: jspb.Message.getBooleanFieldWithDefault(msg, 6, false),
    shadowed: jspb.Message.getBooleanFieldWithDefault(msg, 21, false),
    doNotEmail: jspb.Message.getBooleanFieldWithDefault(msg, 15, false),
    badgesList: (f = jspb.Message.getRepeatedField(msg, 8)) == null ? undefined : f,
    hasStrongVerification: jspb.Message.getBooleanFieldWithDefault(msg, 9, false),
    birthdateVerificationStatus: jspb.Message.getFieldWithDefault(msg, 10, 0),
    genderVerificationStatus: jspb.Message.getFieldWithDefault(msg, 11, 0),
    hasPassportSexGenderException: jspb.Message.getBooleanFieldWithDefault(msg, 12, false),
    pendingModNotesCount: jspb.Message.getFieldWithDefault(msg, 16, 0),
    acknowledgedModNotesCount: jspb.Message.getFieldWithDefault(msg, 17, 0),
    lastModNoteAcknowledged: (f = msg.getLastModNoteAcknowledged()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    adminActionsList: jspb.Message.toObjectList(msg.getAdminActionsList(),
    proto.org.couchers.admin.AdminActionLog.toObject, includeInstance),
    adminTagsList: (f = jspb.Message.getRepeatedField(msg, 19)) == null ? undefined : f,
    modScore: jspb.Message.getFloatingPointFieldWithDefault(msg, 20, 0.0),
    uiLanguagePreference: jspb.Message.getFieldWithDefault(msg, 23, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.UserDetails} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.UserDetails}
 */
proto.org.couchers.admin.UserDetails.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.setUserId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setUsername(value);
      break;
    case 14:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setEmail(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setGender(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setBirthdate(value);
      break;
    case 5:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setBanned(value);
      break;
    case 6:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setDeleted(value);
      break;
    case 21:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setShadowed(value);
      break;
    case 15:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setDoNotEmail(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.addBadges(value);
      break;
    case 9:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setHasStrongVerification(value);
      break;
    case 10:
      var value = /** @type {!proto.org.couchers.api.core.BirthdateVerificationStatus} */ (reader.readEnum());
      msg.setBirthdateVerificationStatus(value);
      break;
    case 11:
      var value = /** @type {!proto.org.couchers.api.core.GenderVerificationStatus} */ (reader.readEnum());
      msg.setGenderVerificationStatus(value);
      break;
    case 12:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setHasPassportSexGenderException(value);
      break;
    case 16:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setPendingModNotesCount(value);
      break;
    case 17:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setAcknowledgedModNotesCount(value);
      break;
    case 22:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setLastModNoteAcknowledged(value);
      break;
    case 18:
      var value = new proto.org.couchers.admin.AdminActionLog;
      reader.readMessage(value,proto.org.couchers.admin.AdminActionLog.deserializeBinaryFromReader);
      msg.addAdminActions(value);
      break;
    case 19:
      var value = /** @type {string} */ (reader.readString());
      msg.addAdminTags(value);
      break;
    case 20:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setModScore(value);
      break;
    case 23:
      var value = /** @type {string} */ (reader.readString());
      msg.setUiLanguagePreference(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.UserDetails} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.UserDetails.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUserId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getUsername();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      14,
      f
    );
  }
  f = message.getEmail();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getGender();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getBirthdate();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getBanned();
  if (f) {
    writer.writeBool(
      5,
      f
    );
  }
  f = message.getDeleted();
  if (f) {
    writer.writeBool(
      6,
      f
    );
  }
  f = message.getShadowed();
  if (f) {
    writer.writeBool(
      21,
      f
    );
  }
  f = message.getDoNotEmail();
  if (f) {
    writer.writeBool(
      15,
      f
    );
  }
  f = message.getBadgesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      8,
      f
    );
  }
  f = message.getHasStrongVerification();
  if (f) {
    writer.writeBool(
      9,
      f
    );
  }
  f = message.getBirthdateVerificationStatus();
  if (f !== 0.0) {
    writer.writeEnum(
      10,
      f
    );
  }
  f = message.getGenderVerificationStatus();
  if (f !== 0.0) {
    writer.writeEnum(
      11,
      f
    );
  }
  f = message.getHasPassportSexGenderException();
  if (f) {
    writer.writeBool(
      12,
      f
    );
  }
  f = message.getPendingModNotesCount();
  if (f !== 0) {
    writer.writeInt64(
      16,
      f
    );
  }
  f = message.getAcknowledgedModNotesCount();
  if (f !== 0) {
    writer.writeInt64(
      17,
      f
    );
  }
  f = message.getLastModNoteAcknowledged();
  if (f != null) {
    writer.writeMessage(
      22,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getAdminActionsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      18,
      f,
      proto.org.couchers.admin.AdminActionLog.serializeBinaryToWriter
    );
  }
  f = message.getAdminTagsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      19,
      f
    );
  }
  f = message.getModScore();
  if (f !== 0.0) {
    writer.writeDouble(
      20,
      f
    );
  }
  f = message.getUiLanguagePreference();
  if (f.length > 0) {
    writer.writeString(
      23,
      f
    );
  }
};


/**
 * optional int64 user_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.UserDetails.prototype.getUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string username = 2;
 * @return {string}
 */
proto.org.couchers.admin.UserDetails.prototype.getUsername = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setUsername = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string name = 14;
 * @return {string}
 */
proto.org.couchers.admin.UserDetails.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 14, value);
};


/**
 * optional string email = 3;
 * @return {string}
 */
proto.org.couchers.admin.UserDetails.prototype.getEmail = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setEmail = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string gender = 4;
 * @return {string}
 */
proto.org.couchers.admin.UserDetails.prototype.getGender = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setGender = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string birthdate = 7;
 * @return {string}
 */
proto.org.couchers.admin.UserDetails.prototype.getBirthdate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setBirthdate = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional bool banned = 5;
 * @return {boolean}
 */
proto.org.couchers.admin.UserDetails.prototype.getBanned = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setBanned = function(value) {
  return jspb.Message.setProto3BooleanField(this, 5, value);
};


/**
 * optional bool deleted = 6;
 * @return {boolean}
 */
proto.org.couchers.admin.UserDetails.prototype.getDeleted = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setDeleted = function(value) {
  return jspb.Message.setProto3BooleanField(this, 6, value);
};


/**
 * optional bool shadowed = 21;
 * @return {boolean}
 */
proto.org.couchers.admin.UserDetails.prototype.getShadowed = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 21, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setShadowed = function(value) {
  return jspb.Message.setProto3BooleanField(this, 21, value);
};


/**
 * optional bool do_not_email = 15;
 * @return {boolean}
 */
proto.org.couchers.admin.UserDetails.prototype.getDoNotEmail = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 15, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setDoNotEmail = function(value) {
  return jspb.Message.setProto3BooleanField(this, 15, value);
};


/**
 * repeated string badges = 8;
 * @return {!Array<string>}
 */
proto.org.couchers.admin.UserDetails.prototype.getBadgesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 8));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setBadgesList = function(value) {
  return jspb.Message.setField(this, 8, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.addBadges = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 8, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.clearBadgesList = function() {
  return this.setBadgesList([]);
};


/**
 * optional bool has_strong_verification = 9;
 * @return {boolean}
 */
proto.org.couchers.admin.UserDetails.prototype.getHasStrongVerification = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setHasStrongVerification = function(value) {
  return jspb.Message.setProto3BooleanField(this, 9, value);
};


/**
 * optional org.couchers.api.core.BirthdateVerificationStatus birthdate_verification_status = 10;
 * @return {!proto.org.couchers.api.core.BirthdateVerificationStatus}
 */
proto.org.couchers.admin.UserDetails.prototype.getBirthdateVerificationStatus = function() {
  return /** @type {!proto.org.couchers.api.core.BirthdateVerificationStatus} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
};


/**
 * @param {!proto.org.couchers.api.core.BirthdateVerificationStatus} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setBirthdateVerificationStatus = function(value) {
  return jspb.Message.setProto3EnumField(this, 10, value);
};


/**
 * optional org.couchers.api.core.GenderVerificationStatus gender_verification_status = 11;
 * @return {!proto.org.couchers.api.core.GenderVerificationStatus}
 */
proto.org.couchers.admin.UserDetails.prototype.getGenderVerificationStatus = function() {
  return /** @type {!proto.org.couchers.api.core.GenderVerificationStatus} */ (jspb.Message.getFieldWithDefault(this, 11, 0));
};


/**
 * @param {!proto.org.couchers.api.core.GenderVerificationStatus} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setGenderVerificationStatus = function(value) {
  return jspb.Message.setProto3EnumField(this, 11, value);
};


/**
 * optional bool has_passport_sex_gender_exception = 12;
 * @return {boolean}
 */
proto.org.couchers.admin.UserDetails.prototype.getHasPassportSexGenderException = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setHasPassportSexGenderException = function(value) {
  return jspb.Message.setProto3BooleanField(this, 12, value);
};


/**
 * optional int64 pending_mod_notes_count = 16;
 * @return {number}
 */
proto.org.couchers.admin.UserDetails.prototype.getPendingModNotesCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setPendingModNotesCount = function(value) {
  return jspb.Message.setProto3IntField(this, 16, value);
};


/**
 * optional int64 acknowledged_mod_notes_count = 17;
 * @return {number}
 */
proto.org.couchers.admin.UserDetails.prototype.getAcknowledgedModNotesCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 17, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setAcknowledgedModNotesCount = function(value) {
  return jspb.Message.setProto3IntField(this, 17, value);
};


/**
 * optional google.protobuf.Timestamp last_mod_note_acknowledged = 22;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.UserDetails.prototype.getLastModNoteAcknowledged = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 22));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
*/
proto.org.couchers.admin.UserDetails.prototype.setLastModNoteAcknowledged = function(value) {
  return jspb.Message.setWrapperField(this, 22, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.clearLastModNoteAcknowledged = function() {
  return this.setLastModNoteAcknowledged(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.UserDetails.prototype.hasLastModNoteAcknowledged = function() {
  return jspb.Message.getField(this, 22) != null;
};


/**
 * repeated AdminActionLog admin_actions = 18;
 * @return {!Array<!proto.org.couchers.admin.AdminActionLog>}
 */
proto.org.couchers.admin.UserDetails.prototype.getAdminActionsList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.AdminActionLog>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.AdminActionLog, 18));
};


/**
 * @param {!Array<!proto.org.couchers.admin.AdminActionLog>} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
*/
proto.org.couchers.admin.UserDetails.prototype.setAdminActionsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 18, value);
};


/**
 * @param {!proto.org.couchers.admin.AdminActionLog=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AdminActionLog}
 */
proto.org.couchers.admin.UserDetails.prototype.addAdminActions = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 18, opt_value, proto.org.couchers.admin.AdminActionLog, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.clearAdminActionsList = function() {
  return this.setAdminActionsList([]);
};


/**
 * repeated string admin_tags = 19;
 * @return {!Array<string>}
 */
proto.org.couchers.admin.UserDetails.prototype.getAdminTagsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 19));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setAdminTagsList = function(value) {
  return jspb.Message.setField(this, 19, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.addAdminTags = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 19, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.clearAdminTagsList = function() {
  return this.setAdminTagsList([]);
};


/**
 * optional double mod_score = 20;
 * @return {number}
 */
proto.org.couchers.admin.UserDetails.prototype.getModScore = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 20, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setModScore = function(value) {
  return jspb.Message.setProto3FloatField(this, 20, value);
};


/**
 * optional string ui_language_preference = 23;
 * @return {string}
 */
proto.org.couchers.admin.UserDetails.prototype.getUiLanguagePreference = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 23, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UserDetails} returns this
 */
proto.org.couchers.admin.UserDetails.prototype.setUiLanguagePreference = function(value) {
  return jspb.Message.setProto3StringField(this, 23, 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.org.couchers.admin.GetUserDetailsReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetUserDetailsReq.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.org.couchers.admin.GetUserDetailsReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetUserDetailsReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetUserDetailsReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetUserDetailsReq}
 */
proto.org.couchers.admin.GetUserDetailsReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.GetUserDetailsReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.GetUserDetailsReq} returns this
 */
proto.org.couchers.admin.GetUserDetailsReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, 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.org.couchers.admin.GetUserReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetUserReq.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.org.couchers.admin.GetUserReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetUserReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetUserReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetUserReq}
 */
proto.org.couchers.admin.GetUserReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.GetUserReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.GetUserReq} returns this
 */
proto.org.couchers.admin.GetUserReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.SearchUsersReq.repeatedFields_ = [16,17,21];



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.org.couchers.admin.SearchUsersReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.SearchUsersReq.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.org.couchers.admin.SearchUsersReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.SearchUsersReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    username: jspb.Message.getFieldWithDefault(msg, 3, ""),
    email: jspb.Message.getFieldWithDefault(msg, 4, ""),
    name: jspb.Message.getFieldWithDefault(msg, 5, ""),
    adminActionLog: jspb.Message.getFieldWithDefault(msg, 6, ""),
    city: jspb.Message.getFieldWithDefault(msg, 7, ""),
    minUserId: jspb.Message.getFieldWithDefault(msg, 8, 0),
    maxUserId: jspb.Message.getFieldWithDefault(msg, 9, 0),
    minBirthdate: jspb.Message.getFieldWithDefault(msg, 10, ""),
    maxBirthdate: jspb.Message.getFieldWithDefault(msg, 11, ""),
    minJoinedDate: jspb.Message.getFieldWithDefault(msg, 12, ""),
    maxJoinedDate: jspb.Message.getFieldWithDefault(msg, 13, ""),
    minLastActiveDate: jspb.Message.getFieldWithDefault(msg, 14, ""),
    maxLastActiveDate: jspb.Message.getFieldWithDefault(msg, 15, ""),
    gendersList: (f = jspb.Message.getRepeatedField(msg, 16)) == null ? undefined : f,
    languageCodesList: (f = jspb.Message.getRepeatedField(msg, 17)) == null ? undefined : f,
    isDeleted: (f = msg.getIsDeleted()) && google_protobuf_wrappers_pb.BoolValue.toObject(includeInstance, f),
    isBanned: (f = msg.getIsBanned()) && google_protobuf_wrappers_pb.BoolValue.toObject(includeInstance, f),
    isShadowed: (f = msg.getIsShadowed()) && google_protobuf_wrappers_pb.BoolValue.toObject(includeInstance, f),
    hasAvatar: (f = msg.getHasAvatar()) && google_protobuf_wrappers_pb.BoolValue.toObject(includeInstance, f),
    adminTagsList: (f = jspb.Message.getRepeatedField(msg, 21)) == null ? undefined : f,
    pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0),
    pageToken: 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.org.couchers.admin.SearchUsersReq}
 */
proto.org.couchers.admin.SearchUsersReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.SearchUsersReq;
  return proto.org.couchers.admin.SearchUsersReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.SearchUsersReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.SearchUsersReq}
 */
proto.org.couchers.admin.SearchUsersReq.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setUsername(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setEmail(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setAdminActionLog(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setCity(value);
      break;
    case 8:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setMinUserId(value);
      break;
    case 9:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setMaxUserId(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setMinBirthdate(value);
      break;
    case 11:
      var value = /** @type {string} */ (reader.readString());
      msg.setMaxBirthdate(value);
      break;
    case 12:
      var value = /** @type {string} */ (reader.readString());
      msg.setMinJoinedDate(value);
      break;
    case 13:
      var value = /** @type {string} */ (reader.readString());
      msg.setMaxJoinedDate(value);
      break;
    case 14:
      var value = /** @type {string} */ (reader.readString());
      msg.setMinLastActiveDate(value);
      break;
    case 15:
      var value = /** @type {string} */ (reader.readString());
      msg.setMaxLastActiveDate(value);
      break;
    case 16:
      var value = /** @type {string} */ (reader.readString());
      msg.addGenders(value);
      break;
    case 17:
      var value = /** @type {string} */ (reader.readString());
      msg.addLanguageCodes(value);
      break;
    case 18:
      var value = new google_protobuf_wrappers_pb.BoolValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.BoolValue.deserializeBinaryFromReader);
      msg.setIsDeleted(value);
      break;
    case 19:
      var value = new google_protobuf_wrappers_pb.BoolValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.BoolValue.deserializeBinaryFromReader);
      msg.setIsBanned(value);
      break;
    case 22:
      var value = new google_protobuf_wrappers_pb.BoolValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.BoolValue.deserializeBinaryFromReader);
      msg.setIsShadowed(value);
      break;
    case 20:
      var value = new google_protobuf_wrappers_pb.BoolValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.BoolValue.deserializeBinaryFromReader);
      msg.setHasAvatar(value);
      break;
    case 21:
      var value = /** @type {string} */ (reader.readString());
      msg.addAdminTags(value);
      break;
    case 1:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setPageSize(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.SearchUsersReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.SearchUsersReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUsername();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getEmail();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getAdminActionLog();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getCity();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getMinUserId();
  if (f !== 0) {
    writer.writeInt64(
      8,
      f
    );
  }
  f = message.getMaxUserId();
  if (f !== 0) {
    writer.writeInt64(
      9,
      f
    );
  }
  f = message.getMinBirthdate();
  if (f.length > 0) {
    writer.writeString(
      10,
      f
    );
  }
  f = message.getMaxBirthdate();
  if (f.length > 0) {
    writer.writeString(
      11,
      f
    );
  }
  f = message.getMinJoinedDate();
  if (f.length > 0) {
    writer.writeString(
      12,
      f
    );
  }
  f = message.getMaxJoinedDate();
  if (f.length > 0) {
    writer.writeString(
      13,
      f
    );
  }
  f = message.getMinLastActiveDate();
  if (f.length > 0) {
    writer.writeString(
      14,
      f
    );
  }
  f = message.getMaxLastActiveDate();
  if (f.length > 0) {
    writer.writeString(
      15,
      f
    );
  }
  f = message.getGendersList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      16,
      f
    );
  }
  f = message.getLanguageCodesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      17,
      f
    );
  }
  f = message.getIsDeleted();
  if (f != null) {
    writer.writeMessage(
      18,
      f,
      google_protobuf_wrappers_pb.BoolValue.serializeBinaryToWriter
    );
  }
  f = message.getIsBanned();
  if (f != null) {
    writer.writeMessage(
      19,
      f,
      google_protobuf_wrappers_pb.BoolValue.serializeBinaryToWriter
    );
  }
  f = message.getIsShadowed();
  if (f != null) {
    writer.writeMessage(
      22,
      f,
      google_protobuf_wrappers_pb.BoolValue.serializeBinaryToWriter
    );
  }
  f = message.getHasAvatar();
  if (f != null) {
    writer.writeMessage(
      20,
      f,
      google_protobuf_wrappers_pb.BoolValue.serializeBinaryToWriter
    );
  }
  f = message.getAdminTagsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      21,
      f
    );
  }
  f = message.getPageSize();
  if (f !== 0) {
    writer.writeUint32(
      1,
      f
    );
  }
  f = message.getPageToken();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * optional string username = 3;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getUsername = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setUsername = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string email = 4;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getEmail = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setEmail = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string name = 5;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string admin_action_log = 6;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getAdminActionLog = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setAdminActionLog = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string city = 7;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getCity = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setCity = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional int64 min_user_id = 8;
 * @return {number}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getMinUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setMinUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 8, value);
};


/**
 * optional int64 max_user_id = 9;
 * @return {number}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getMaxUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setMaxUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 9, value);
};


/**
 * optional string min_birthdate = 10;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getMinBirthdate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setMinBirthdate = function(value) {
  return jspb.Message.setProto3StringField(this, 10, value);
};


/**
 * optional string max_birthdate = 11;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getMaxBirthdate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setMaxBirthdate = function(value) {
  return jspb.Message.setProto3StringField(this, 11, value);
};


/**
 * optional string min_joined_date = 12;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getMinJoinedDate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setMinJoinedDate = function(value) {
  return jspb.Message.setProto3StringField(this, 12, value);
};


/**
 * optional string max_joined_date = 13;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getMaxJoinedDate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setMaxJoinedDate = function(value) {
  return jspb.Message.setProto3StringField(this, 13, value);
};


/**
 * optional string min_last_active_date = 14;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getMinLastActiveDate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setMinLastActiveDate = function(value) {
  return jspb.Message.setProto3StringField(this, 14, value);
};


/**
 * optional string max_last_active_date = 15;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getMaxLastActiveDate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setMaxLastActiveDate = function(value) {
  return jspb.Message.setProto3StringField(this, 15, value);
};


/**
 * repeated string genders = 16;
 * @return {!Array<string>}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getGendersList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 16));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setGendersList = function(value) {
  return jspb.Message.setField(this, 16, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.addGenders = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 16, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.clearGendersList = function() {
  return this.setGendersList([]);
};


/**
 * repeated string language_codes = 17;
 * @return {!Array<string>}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getLanguageCodesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 17));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setLanguageCodesList = function(value) {
  return jspb.Message.setField(this, 17, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.addLanguageCodes = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 17, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.clearLanguageCodesList = function() {
  return this.setLanguageCodesList([]);
};


/**
 * optional google.protobuf.BoolValue is_deleted = 18;
 * @return {?proto.google.protobuf.BoolValue}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getIsDeleted = function() {
  return /** @type{?proto.google.protobuf.BoolValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.BoolValue, 18));
};


/**
 * @param {?proto.google.protobuf.BoolValue|undefined} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
*/
proto.org.couchers.admin.SearchUsersReq.prototype.setIsDeleted = function(value) {
  return jspb.Message.setWrapperField(this, 18, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.clearIsDeleted = function() {
  return this.setIsDeleted(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.hasIsDeleted = function() {
  return jspb.Message.getField(this, 18) != null;
};


/**
 * optional google.protobuf.BoolValue is_banned = 19;
 * @return {?proto.google.protobuf.BoolValue}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getIsBanned = function() {
  return /** @type{?proto.google.protobuf.BoolValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.BoolValue, 19));
};


/**
 * @param {?proto.google.protobuf.BoolValue|undefined} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
*/
proto.org.couchers.admin.SearchUsersReq.prototype.setIsBanned = function(value) {
  return jspb.Message.setWrapperField(this, 19, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.clearIsBanned = function() {
  return this.setIsBanned(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.hasIsBanned = function() {
  return jspb.Message.getField(this, 19) != null;
};


/**
 * optional google.protobuf.BoolValue is_shadowed = 22;
 * @return {?proto.google.protobuf.BoolValue}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getIsShadowed = function() {
  return /** @type{?proto.google.protobuf.BoolValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.BoolValue, 22));
};


/**
 * @param {?proto.google.protobuf.BoolValue|undefined} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
*/
proto.org.couchers.admin.SearchUsersReq.prototype.setIsShadowed = function(value) {
  return jspb.Message.setWrapperField(this, 22, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.clearIsShadowed = function() {
  return this.setIsShadowed(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.hasIsShadowed = function() {
  return jspb.Message.getField(this, 22) != null;
};


/**
 * optional google.protobuf.BoolValue has_avatar = 20;
 * @return {?proto.google.protobuf.BoolValue}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getHasAvatar = function() {
  return /** @type{?proto.google.protobuf.BoolValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.BoolValue, 20));
};


/**
 * @param {?proto.google.protobuf.BoolValue|undefined} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
*/
proto.org.couchers.admin.SearchUsersReq.prototype.setHasAvatar = function(value) {
  return jspb.Message.setWrapperField(this, 20, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.clearHasAvatar = function() {
  return this.setHasAvatar(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.hasHasAvatar = function() {
  return jspb.Message.getField(this, 20) != null;
};


/**
 * repeated string admin_tags = 21;
 * @return {!Array<string>}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getAdminTagsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 21));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setAdminTagsList = function(value) {
  return jspb.Message.setField(this, 21, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.addAdminTags = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 21, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.clearAdminTagsList = function() {
  return this.setAdminTagsList([]);
};


/**
 * optional uint32 page_size = 1;
 * @return {number}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getPageSize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setPageSize = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string page_token = 2;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersReq.prototype.getPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersReq} returns this
 */
proto.org.couchers.admin.SearchUsersReq.prototype.setPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.SearchUsersRes.repeatedFields_ = [1];



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.org.couchers.admin.SearchUsersRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.SearchUsersRes.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.org.couchers.admin.SearchUsersRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.SearchUsersRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    usersList: jspb.Message.toObjectList(msg.getUsersList(),
    proto.org.couchers.admin.UserDetails.toObject, includeInstance),
    nextPageToken: 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.org.couchers.admin.SearchUsersRes}
 */
proto.org.couchers.admin.SearchUsersRes.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.SearchUsersRes;
  return proto.org.couchers.admin.SearchUsersRes.deserializeBinaryFromReader(msg, reader);
};


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.SearchUsersRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.SearchUsersRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUsersList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.org.couchers.admin.UserDetails.serializeBinaryToWriter
    );
  }
  f = message.getNextPageToken();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * repeated UserDetails users = 1;
 * @return {!Array<!proto.org.couchers.admin.UserDetails>}
 */
proto.org.couchers.admin.SearchUsersRes.prototype.getUsersList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.UserDetails>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.UserDetails, 1));
};


/**
 * @param {!Array<!proto.org.couchers.admin.UserDetails>} value
 * @return {!proto.org.couchers.admin.SearchUsersRes} returns this
*/
proto.org.couchers.admin.SearchUsersRes.prototype.setUsersList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.org.couchers.admin.UserDetails=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.UserDetails}
 */
proto.org.couchers.admin.SearchUsersRes.prototype.addUsers = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.couchers.admin.UserDetails, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.SearchUsersRes} returns this
 */
proto.org.couchers.admin.SearchUsersRes.prototype.clearUsersList = function() {
  return this.setUsersList([]);
};


/**
 * optional string next_page_token = 2;
 * @return {string}
 */
proto.org.couchers.admin.SearchUsersRes.prototype.getNextPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SearchUsersRes} returns this
 */
proto.org.couchers.admin.SearchUsersRes.prototype.setNextPageToken = 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.org.couchers.admin.ChangeUserGenderReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ChangeUserGenderReq.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.org.couchers.admin.ChangeUserGenderReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ChangeUserGenderReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    gender: 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.org.couchers.admin.ChangeUserGenderReq}
 */
proto.org.couchers.admin.ChangeUserGenderReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.ChangeUserGenderReq;
  return proto.org.couchers.admin.ChangeUserGenderReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ChangeUserGenderReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ChangeUserGenderReq}
 */
proto.org.couchers.admin.ChangeUserGenderReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setGender(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.ChangeUserGenderReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ChangeUserGenderReq} returns this
 */
proto.org.couchers.admin.ChangeUserGenderReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string gender = 2;
 * @return {string}
 */
proto.org.couchers.admin.ChangeUserGenderReq.prototype.getGender = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ChangeUserGenderReq} returns this
 */
proto.org.couchers.admin.ChangeUserGenderReq.prototype.setGender = 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.org.couchers.admin.ChangeUserBirthdateReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ChangeUserBirthdateReq.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.org.couchers.admin.ChangeUserBirthdateReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ChangeUserBirthdateReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    birthdate: 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.org.couchers.admin.ChangeUserBirthdateReq}
 */
proto.org.couchers.admin.ChangeUserBirthdateReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.ChangeUserBirthdateReq;
  return proto.org.couchers.admin.ChangeUserBirthdateReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ChangeUserBirthdateReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ChangeUserBirthdateReq}
 */
proto.org.couchers.admin.ChangeUserBirthdateReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setBirthdate(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.ChangeUserBirthdateReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ChangeUserBirthdateReq} returns this
 */
proto.org.couchers.admin.ChangeUserBirthdateReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string birthdate = 2;
 * @return {string}
 */
proto.org.couchers.admin.ChangeUserBirthdateReq.prototype.getBirthdate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ChangeUserBirthdateReq} returns this
 */
proto.org.couchers.admin.ChangeUserBirthdateReq.prototype.setBirthdate = 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.org.couchers.admin.AddBadgeReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AddBadgeReq.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.org.couchers.admin.AddBadgeReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AddBadgeReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    badgeId: 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.org.couchers.admin.AddBadgeReq}
 */
proto.org.couchers.admin.AddBadgeReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.AddBadgeReq;
  return proto.org.couchers.admin.AddBadgeReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AddBadgeReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AddBadgeReq}
 */
proto.org.couchers.admin.AddBadgeReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setBadgeId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.AddBadgeReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AddBadgeReq} returns this
 */
proto.org.couchers.admin.AddBadgeReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string badge_id = 2;
 * @return {string}
 */
proto.org.couchers.admin.AddBadgeReq.prototype.getBadgeId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AddBadgeReq} returns this
 */
proto.org.couchers.admin.AddBadgeReq.prototype.setBadgeId = 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.org.couchers.admin.RemoveBadgeReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.RemoveBadgeReq.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.org.couchers.admin.RemoveBadgeReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.RemoveBadgeReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    badgeId: 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.org.couchers.admin.RemoveBadgeReq}
 */
proto.org.couchers.admin.RemoveBadgeReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.RemoveBadgeReq;
  return proto.org.couchers.admin.RemoveBadgeReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.RemoveBadgeReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.RemoveBadgeReq}
 */
proto.org.couchers.admin.RemoveBadgeReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setBadgeId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.RemoveBadgeReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.RemoveBadgeReq} returns this
 */
proto.org.couchers.admin.RemoveBadgeReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string badge_id = 2;
 * @return {string}
 */
proto.org.couchers.admin.RemoveBadgeReq.prototype.getBadgeId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.RemoveBadgeReq} returns this
 */
proto.org.couchers.admin.RemoveBadgeReq.prototype.setBadgeId = 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.org.couchers.admin.SetPassportSexGenderExceptionReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.SetPassportSexGenderExceptionReq.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.org.couchers.admin.SetPassportSexGenderExceptionReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.SetPassportSexGenderExceptionReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    passportSexGenderException: 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.org.couchers.admin.SetPassportSexGenderExceptionReq}
 */
proto.org.couchers.admin.SetPassportSexGenderExceptionReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.SetPassportSexGenderExceptionReq;
  return proto.org.couchers.admin.SetPassportSexGenderExceptionReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.SetPassportSexGenderExceptionReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.SetPassportSexGenderExceptionReq}
 */
proto.org.couchers.admin.SetPassportSexGenderExceptionReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setPassportSexGenderException(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.SetPassportSexGenderExceptionReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SetPassportSexGenderExceptionReq} returns this
 */
proto.org.couchers.admin.SetPassportSexGenderExceptionReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional bool passport_sex_gender_exception = 2;
 * @return {boolean}
 */
proto.org.couchers.admin.SetPassportSexGenderExceptionReq.prototype.getPassportSexGenderException = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.SetPassportSexGenderExceptionReq} returns this
 */
proto.org.couchers.admin.SetPassportSexGenderExceptionReq.prototype.setPassportSexGenderException = 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.org.couchers.admin.BanUserReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.BanUserReq.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.org.couchers.admin.BanUserReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.BanUserReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    adminNote: 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.org.couchers.admin.BanUserReq}
 */
proto.org.couchers.admin.BanUserReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.BanUserReq;
  return proto.org.couchers.admin.BanUserReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.BanUserReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.BanUserReq}
 */
proto.org.couchers.admin.BanUserReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setAdminNote(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.BanUserReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.BanUserReq} returns this
 */
proto.org.couchers.admin.BanUserReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string admin_note = 2;
 * @return {string}
 */
proto.org.couchers.admin.BanUserReq.prototype.getAdminNote = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.BanUserReq} returns this
 */
proto.org.couchers.admin.BanUserReq.prototype.setAdminNote = 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.org.couchers.admin.UnbanUserReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.UnbanUserReq.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.org.couchers.admin.UnbanUserReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.UnbanUserReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    adminNote: 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.org.couchers.admin.UnbanUserReq}
 */
proto.org.couchers.admin.UnbanUserReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.UnbanUserReq;
  return proto.org.couchers.admin.UnbanUserReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.UnbanUserReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.UnbanUserReq}
 */
proto.org.couchers.admin.UnbanUserReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setAdminNote(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.UnbanUserReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UnbanUserReq} returns this
 */
proto.org.couchers.admin.UnbanUserReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string admin_note = 2;
 * @return {string}
 */
proto.org.couchers.admin.UnbanUserReq.prototype.getAdminNote = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UnbanUserReq} returns this
 */
proto.org.couchers.admin.UnbanUserReq.prototype.setAdminNote = 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.org.couchers.admin.ShadowUserReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ShadowUserReq.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.org.couchers.admin.ShadowUserReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ShadowUserReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    adminNote: 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.org.couchers.admin.ShadowUserReq}
 */
proto.org.couchers.admin.ShadowUserReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.ShadowUserReq;
  return proto.org.couchers.admin.ShadowUserReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ShadowUserReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ShadowUserReq}
 */
proto.org.couchers.admin.ShadowUserReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setAdminNote(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.ShadowUserReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ShadowUserReq} returns this
 */
proto.org.couchers.admin.ShadowUserReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string admin_note = 2;
 * @return {string}
 */
proto.org.couchers.admin.ShadowUserReq.prototype.getAdminNote = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ShadowUserReq} returns this
 */
proto.org.couchers.admin.ShadowUserReq.prototype.setAdminNote = 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.org.couchers.admin.UnshadowUserReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.UnshadowUserReq.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.org.couchers.admin.UnshadowUserReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.UnshadowUserReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    adminNote: 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.org.couchers.admin.UnshadowUserReq}
 */
proto.org.couchers.admin.UnshadowUserReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.UnshadowUserReq;
  return proto.org.couchers.admin.UnshadowUserReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.UnshadowUserReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.UnshadowUserReq}
 */
proto.org.couchers.admin.UnshadowUserReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setAdminNote(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.UnshadowUserReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UnshadowUserReq} returns this
 */
proto.org.couchers.admin.UnshadowUserReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string admin_note = 2;
 * @return {string}
 */
proto.org.couchers.admin.UnshadowUserReq.prototype.getAdminNote = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UnshadowUserReq} returns this
 */
proto.org.couchers.admin.UnshadowUserReq.prototype.setAdminNote = 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.org.couchers.admin.AddAdminNoteReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AddAdminNoteReq.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.org.couchers.admin.AddAdminNoteReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AddAdminNoteReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    adminNote: jspb.Message.getFieldWithDefault(msg, 2, ""),
    level: jspb.Message.getFieldWithDefault(msg, 3, 0),
    data: jspb.Message.getFieldWithDefault(msg, 4, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AddAdminNoteReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AddAdminNoteReq}
 */
proto.org.couchers.admin.AddAdminNoteReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setAdminNote(value);
      break;
    case 3:
      var value = /** @type {!proto.org.couchers.admin.AdminActionLevel} */ (reader.readEnum());
      msg.setLevel(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setData(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.AddAdminNoteReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AddAdminNoteReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUser();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getAdminNote();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getLevel();
  if (f !== 0.0) {
    writer.writeEnum(
      3,
      f
    );
  }
  f = message.getData();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
};


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.AddAdminNoteReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AddAdminNoteReq} returns this
 */
proto.org.couchers.admin.AddAdminNoteReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string admin_note = 2;
 * @return {string}
 */
proto.org.couchers.admin.AddAdminNoteReq.prototype.getAdminNote = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AddAdminNoteReq} returns this
 */
proto.org.couchers.admin.AddAdminNoteReq.prototype.setAdminNote = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional AdminActionLevel level = 3;
 * @return {!proto.org.couchers.admin.AdminActionLevel}
 */
proto.org.couchers.admin.AddAdminNoteReq.prototype.getLevel = function() {
  return /** @type {!proto.org.couchers.admin.AdminActionLevel} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {!proto.org.couchers.admin.AdminActionLevel} value
 * @return {!proto.org.couchers.admin.AddAdminNoteReq} returns this
 */
proto.org.couchers.admin.AddAdminNoteReq.prototype.setLevel = function(value) {
  return jspb.Message.setProto3EnumField(this, 3, value);
};


/**
 * optional string data = 4;
 * @return {string}
 */
proto.org.couchers.admin.AddAdminNoteReq.prototype.getData = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AddAdminNoteReq} returns this
 */
proto.org.couchers.admin.AddAdminNoteReq.prototype.setData = function(value) {
  return jspb.Message.setProto3StringField(this, 4, 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.org.couchers.admin.ContentReport.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ContentReport.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.org.couchers.admin.ContentReport} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ContentReport.toObject = function(includeInstance, msg) {
  var f, obj = {
    contentReportId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    reportingUserId: jspb.Message.getFieldWithDefault(msg, 3, 0),
    authorUserId: jspb.Message.getFieldWithDefault(msg, 4, 0),
    reason: jspb.Message.getFieldWithDefault(msg, 5, ""),
    description: jspb.Message.getFieldWithDefault(msg, 6, ""),
    contentRef: jspb.Message.getFieldWithDefault(msg, 7, ""),
    userAgent: jspb.Message.getFieldWithDefault(msg, 8, ""),
    page: jspb.Message.getFieldWithDefault(msg, 9, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ContentReport} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ContentReport}
 */
proto.org.couchers.admin.ContentReport.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.setContentReportId(value);
      break;
    case 2:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setTime(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setReportingUserId(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setAuthorUserId(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setReason(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setDescription(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setContentRef(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setUserAgent(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setPage(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ContentReport} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ContentReport.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getContentReportId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getTime();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getReportingUserId();
  if (f !== 0) {
    writer.writeInt64(
      3,
      f
    );
  }
  f = message.getAuthorUserId();
  if (f !== 0) {
    writer.writeInt64(
      4,
      f
    );
  }
  f = message.getReason();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getDescription();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getContentRef();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getUserAgent();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getPage();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
};


/**
 * optional int64 content_report_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.ContentReport.prototype.getContentReportId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.ContentReport} returns this
 */
proto.org.couchers.admin.ContentReport.prototype.setContentReportId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional google.protobuf.Timestamp time = 2;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.ContentReport.prototype.getTime = 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.org.couchers.admin.ContentReport} returns this
*/
proto.org.couchers.admin.ContentReport.prototype.setTime = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.ContentReport} returns this
 */
proto.org.couchers.admin.ContentReport.prototype.clearTime = function() {
  return this.setTime(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.ContentReport.prototype.hasTime = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional int64 reporting_user_id = 3;
 * @return {number}
 */
proto.org.couchers.admin.ContentReport.prototype.getReportingUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.ContentReport} returns this
 */
proto.org.couchers.admin.ContentReport.prototype.setReportingUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional int64 author_user_id = 4;
 * @return {number}
 */
proto.org.couchers.admin.ContentReport.prototype.getAuthorUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.ContentReport} returns this
 */
proto.org.couchers.admin.ContentReport.prototype.setAuthorUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional string reason = 5;
 * @return {string}
 */
proto.org.couchers.admin.ContentReport.prototype.getReason = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ContentReport} returns this
 */
proto.org.couchers.admin.ContentReport.prototype.setReason = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string description = 6;
 * @return {string}
 */
proto.org.couchers.admin.ContentReport.prototype.getDescription = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ContentReport} returns this
 */
proto.org.couchers.admin.ContentReport.prototype.setDescription = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string content_ref = 7;
 * @return {string}
 */
proto.org.couchers.admin.ContentReport.prototype.getContentRef = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ContentReport} returns this
 */
proto.org.couchers.admin.ContentReport.prototype.setContentRef = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional string user_agent = 8;
 * @return {string}
 */
proto.org.couchers.admin.ContentReport.prototype.getUserAgent = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ContentReport} returns this
 */
proto.org.couchers.admin.ContentReport.prototype.setUserAgent = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional string page = 9;
 * @return {string}
 */
proto.org.couchers.admin.ContentReport.prototype.getPage = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ContentReport} returns this
 */
proto.org.couchers.admin.ContentReport.prototype.setPage = function(value) {
  return jspb.Message.setProto3StringField(this, 9, 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.org.couchers.admin.GetContentReportReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetContentReportReq.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.org.couchers.admin.GetContentReportReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetContentReportReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    contentReportId: jspb.Message.getFieldWithDefault(msg, 1, 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.org.couchers.admin.GetContentReportReq}
 */
proto.org.couchers.admin.GetContentReportReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.GetContentReportReq;
  return proto.org.couchers.admin.GetContentReportReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetContentReportReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetContentReportReq}
 */
proto.org.couchers.admin.GetContentReportReq.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.setContentReportId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional int64 content_report_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.GetContentReportReq.prototype.getContentReportId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.GetContentReportReq} returns this
 */
proto.org.couchers.admin.GetContentReportReq.prototype.setContentReportId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, 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.org.couchers.admin.GetContentReportRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetContentReportRes.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.org.couchers.admin.GetContentReportRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetContentReportRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    contentReport: (f = msg.getContentReport()) && proto.org.couchers.admin.ContentReport.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.org.couchers.admin.GetContentReportRes}
 */
proto.org.couchers.admin.GetContentReportRes.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.GetContentReportRes;
  return proto.org.couchers.admin.GetContentReportRes.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetContentReportRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetContentReportRes}
 */
proto.org.couchers.admin.GetContentReportRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.org.couchers.admin.ContentReport;
      reader.readMessage(value,proto.org.couchers.admin.ContentReport.deserializeBinaryFromReader);
      msg.setContentReport(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.GetContentReportRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetContentReportRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getContentReport();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.org.couchers.admin.ContentReport.serializeBinaryToWriter
    );
  }
};


/**
 * optional ContentReport content_report = 1;
 * @return {?proto.org.couchers.admin.ContentReport}
 */
proto.org.couchers.admin.GetContentReportRes.prototype.getContentReport = function() {
  return /** @type{?proto.org.couchers.admin.ContentReport} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ContentReport, 1));
};


/**
 * @param {?proto.org.couchers.admin.ContentReport|undefined} value
 * @return {!proto.org.couchers.admin.GetContentReportRes} returns this
*/
proto.org.couchers.admin.GetContentReportRes.prototype.setContentReport = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.GetContentReportRes} returns this
 */
proto.org.couchers.admin.GetContentReportRes.prototype.clearContentReport = function() {
  return this.setContentReport(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.GetContentReportRes.prototype.hasContentReport = function() {
  return jspb.Message.getField(this, 1) != 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.org.couchers.admin.GetContentReportsForAuthorReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetContentReportsForAuthorReq.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.org.couchers.admin.GetContentReportsForAuthorReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetContentReportsForAuthorReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetContentReportsForAuthorReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetContentReportsForAuthorReq}
 */
proto.org.couchers.admin.GetContentReportsForAuthorReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.GetContentReportsForAuthorReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.GetContentReportsForAuthorReq} returns this
 */
proto.org.couchers.admin.GetContentReportsForAuthorReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.GetContentReportsForAuthorRes.repeatedFields_ = [1];



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.org.couchers.admin.GetContentReportsForAuthorRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetContentReportsForAuthorRes.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.org.couchers.admin.GetContentReportsForAuthorRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetContentReportsForAuthorRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    contentReportsList: jspb.Message.toObjectList(msg.getContentReportsList(),
    proto.org.couchers.admin.ContentReport.toObject, includeInstance)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetContentReportsForAuthorRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetContentReportsForAuthorRes}
 */
proto.org.couchers.admin.GetContentReportsForAuthorRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.org.couchers.admin.ContentReport;
      reader.readMessage(value,proto.org.couchers.admin.ContentReport.deserializeBinaryFromReader);
      msg.addContentReports(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.GetContentReportsForAuthorRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetContentReportsForAuthorRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getContentReportsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.org.couchers.admin.ContentReport.serializeBinaryToWriter
    );
  }
};


/**
 * repeated ContentReport content_reports = 1;
 * @return {!Array<!proto.org.couchers.admin.ContentReport>}
 */
proto.org.couchers.admin.GetContentReportsForAuthorRes.prototype.getContentReportsList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.ContentReport>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.ContentReport, 1));
};


/**
 * @param {!Array<!proto.org.couchers.admin.ContentReport>} value
 * @return {!proto.org.couchers.admin.GetContentReportsForAuthorRes} returns this
*/
proto.org.couchers.admin.GetContentReportsForAuthorRes.prototype.setContentReportsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.org.couchers.admin.ContentReport=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.ContentReport}
 */
proto.org.couchers.admin.GetContentReportsForAuthorRes.prototype.addContentReports = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.couchers.admin.ContentReport, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.GetContentReportsForAuthorRes} returns this
 */
proto.org.couchers.admin.GetContentReportsForAuthorRes.prototype.clearContentReportsList = function() {
  return this.setContentReportsList([]);
};





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.org.couchers.admin.SendModNoteReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.SendModNoteReq.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.org.couchers.admin.SendModNoteReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.SendModNoteReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    content: jspb.Message.getFieldWithDefault(msg, 2, ""),
    internalId: jspb.Message.getFieldWithDefault(msg, 3, ""),
    doNotNotify: jspb.Message.getBooleanFieldWithDefault(msg, 4, 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.org.couchers.admin.SendModNoteReq}
 */
proto.org.couchers.admin.SendModNoteReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.SendModNoteReq;
  return proto.org.couchers.admin.SendModNoteReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.SendModNoteReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.SendModNoteReq}
 */
proto.org.couchers.admin.SendModNoteReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setContent(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setInternalId(value);
      break;
    case 4:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setDoNotNotify(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.SendModNoteReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.SendModNoteReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUser();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getContent();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getInternalId();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getDoNotNotify();
  if (f) {
    writer.writeBool(
      4,
      f
    );
  }
};


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.SendModNoteReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SendModNoteReq} returns this
 */
proto.org.couchers.admin.SendModNoteReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string content = 2;
 * @return {string}
 */
proto.org.couchers.admin.SendModNoteReq.prototype.getContent = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SendModNoteReq} returns this
 */
proto.org.couchers.admin.SendModNoteReq.prototype.setContent = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string internal_id = 3;
 * @return {string}
 */
proto.org.couchers.admin.SendModNoteReq.prototype.getInternalId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SendModNoteReq} returns this
 */
proto.org.couchers.admin.SendModNoteReq.prototype.setInternalId = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional bool do_not_notify = 4;
 * @return {boolean}
 */
proto.org.couchers.admin.SendModNoteReq.prototype.getDoNotNotify = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.SendModNoteReq} returns this
 */
proto.org.couchers.admin.SendModNoteReq.prototype.setDoNotNotify = function(value) {
  return jspb.Message.setProto3BooleanField(this, 4, 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.org.couchers.admin.MarkUserNeedsLocationUpdateReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq.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.org.couchers.admin.MarkUserNeedsLocationUpdateReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq}
 */
proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq} returns this
 */
proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, 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.org.couchers.admin.DeleteUserReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.DeleteUserReq.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.org.couchers.admin.DeleteUserReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.DeleteUserReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.DeleteUserReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.DeleteUserReq}
 */
proto.org.couchers.admin.DeleteUserReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.DeleteUserReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.DeleteUserReq} returns this
 */
proto.org.couchers.admin.DeleteUserReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, 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.org.couchers.admin.RecoverDeletedUserReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.RecoverDeletedUserReq.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.org.couchers.admin.RecoverDeletedUserReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.RecoverDeletedUserReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.RecoverDeletedUserReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.RecoverDeletedUserReq}
 */
proto.org.couchers.admin.RecoverDeletedUserReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.RecoverDeletedUserReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.RecoverDeletedUserReq} returns this
 */
proto.org.couchers.admin.RecoverDeletedUserReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, 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.org.couchers.admin.CreateApiKeyReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.CreateApiKeyReq.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.org.couchers.admin.CreateApiKeyReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.CreateApiKeyReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.CreateApiKeyReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.CreateApiKeyReq}
 */
proto.org.couchers.admin.CreateApiKeyReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.CreateApiKeyReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.CreateApiKeyReq} returns this
 */
proto.org.couchers.admin.CreateApiKeyReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, 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.org.couchers.admin.CreateApiKeyRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.CreateApiKeyRes.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.org.couchers.admin.CreateApiKeyRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.CreateApiKeyRes.toObject = function(includeInstance, msg) {
  var f, obj = {

  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.CreateApiKeyRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.CreateApiKeyRes}
 */
proto.org.couchers.admin.CreateApiKeyRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.CreateApiKeyRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.CreateApiKeyRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
};





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.org.couchers.admin.GetChatsReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetChatsReq.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.org.couchers.admin.GetChatsReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetChatsReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetChatsReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetChatsReq}
 */
proto.org.couchers.admin.GetChatsReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.GetChatsReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.GetChatsReq} returns this
 */
proto.org.couchers.admin.GetChatsReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, 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.org.couchers.admin.ChatUserInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ChatUserInfo.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.org.couchers.admin.ChatUserInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ChatUserInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    userId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    username: jspb.Message.getFieldWithDefault(msg, 2, ""),
    name: jspb.Message.getFieldWithDefault(msg, 3, ""),
    birthdate: jspb.Message.getFieldWithDefault(msg, 4, ""),
    gender: jspb.Message.getFieldWithDefault(msg, 5, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ChatUserInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.ChatUserInfo.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.setUserId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setUsername(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setBirthdate(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setGender(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ChatUserInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ChatUserInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUserId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getUsername();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getBirthdate();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getGender();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
};


/**
 * optional int64 user_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.ChatUserInfo.prototype.getUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.ChatUserInfo} returns this
 */
proto.org.couchers.admin.ChatUserInfo.prototype.setUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string username = 2;
 * @return {string}
 */
proto.org.couchers.admin.ChatUserInfo.prototype.getUsername = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ChatUserInfo} returns this
 */
proto.org.couchers.admin.ChatUserInfo.prototype.setUsername = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string name = 3;
 * @return {string}
 */
proto.org.couchers.admin.ChatUserInfo.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ChatUserInfo} returns this
 */
proto.org.couchers.admin.ChatUserInfo.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string birthdate = 4;
 * @return {string}
 */
proto.org.couchers.admin.ChatUserInfo.prototype.getBirthdate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ChatUserInfo} returns this
 */
proto.org.couchers.admin.ChatUserInfo.prototype.setBirthdate = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string gender = 5;
 * @return {string}
 */
proto.org.couchers.admin.ChatUserInfo.prototype.getGender = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ChatUserInfo} returns this
 */
proto.org.couchers.admin.ChatUserInfo.prototype.setGender = function(value) {
  return jspb.Message.setProto3StringField(this, 5, 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.org.couchers.admin.ChatMessage.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ChatMessage.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.org.couchers.admin.ChatMessage} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ChatMessage.toObject = function(includeInstance, msg) {
  var f, obj = {
    messageId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    author: (f = msg.getAuthor()) && proto.org.couchers.admin.ChatUserInfo.toObject(includeInstance, f),
    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    messageType: jspb.Message.getFieldWithDefault(msg, 4, ""),
    text: jspb.Message.getFieldWithDefault(msg, 5, ""),
    hostRequestStatusTarget: jspb.Message.getFieldWithDefault(msg, 6, ""),
    target: (f = msg.getTarget()) && proto.org.couchers.admin.ChatUserInfo.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.org.couchers.admin.ChatMessage}
 */
proto.org.couchers.admin.ChatMessage.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.ChatMessage;
  return proto.org.couchers.admin.ChatMessage.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ChatMessage} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ChatMessage}
 */
proto.org.couchers.admin.ChatMessage.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.setMessageId(value);
      break;
    case 2:
      var value = new proto.org.couchers.admin.ChatUserInfo;
      reader.readMessage(value,proto.org.couchers.admin.ChatUserInfo.deserializeBinaryFromReader);
      msg.setAuthor(value);
      break;
    case 3:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setTime(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setMessageType(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setText(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setHostRequestStatusTarget(value);
      break;
    case 7:
      var value = new proto.org.couchers.admin.ChatUserInfo;
      reader.readMessage(value,proto.org.couchers.admin.ChatUserInfo.deserializeBinaryFromReader);
      msg.setTarget(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ChatMessage} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ChatMessage.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getMessageId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getAuthor();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.org.couchers.admin.ChatUserInfo.serializeBinaryToWriter
    );
  }
  f = message.getTime();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getMessageType();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getText();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getHostRequestStatusTarget();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getTarget();
  if (f != null) {
    writer.writeMessage(
      7,
      f,
      proto.org.couchers.admin.ChatUserInfo.serializeBinaryToWriter
    );
  }
};


/**
 * optional int64 message_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.ChatMessage.prototype.getMessageId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.ChatMessage} returns this
 */
proto.org.couchers.admin.ChatMessage.prototype.setMessageId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional ChatUserInfo author = 2;
 * @return {?proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.ChatMessage.prototype.getAuthor = function() {
  return /** @type{?proto.org.couchers.admin.ChatUserInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ChatUserInfo, 2));
};


/**
 * @param {?proto.org.couchers.admin.ChatUserInfo|undefined} value
 * @return {!proto.org.couchers.admin.ChatMessage} returns this
*/
proto.org.couchers.admin.ChatMessage.prototype.setAuthor = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.ChatMessage} returns this
 */
proto.org.couchers.admin.ChatMessage.prototype.clearAuthor = function() {
  return this.setAuthor(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.ChatMessage.prototype.hasAuthor = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional google.protobuf.Timestamp time = 3;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.ChatMessage.prototype.getTime = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.ChatMessage} returns this
*/
proto.org.couchers.admin.ChatMessage.prototype.setTime = function(value) {
  return jspb.Message.setWrapperField(this, 3, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.ChatMessage} returns this
 */
proto.org.couchers.admin.ChatMessage.prototype.clearTime = function() {
  return this.setTime(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.ChatMessage.prototype.hasTime = function() {
  return jspb.Message.getField(this, 3) != null;
};


/**
 * optional string message_type = 4;
 * @return {string}
 */
proto.org.couchers.admin.ChatMessage.prototype.getMessageType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ChatMessage} returns this
 */
proto.org.couchers.admin.ChatMessage.prototype.setMessageType = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string text = 5;
 * @return {string}
 */
proto.org.couchers.admin.ChatMessage.prototype.getText = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ChatMessage} returns this
 */
proto.org.couchers.admin.ChatMessage.prototype.setText = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string host_request_status_target = 6;
 * @return {string}
 */
proto.org.couchers.admin.ChatMessage.prototype.getHostRequestStatusTarget = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ChatMessage} returns this
 */
proto.org.couchers.admin.ChatMessage.prototype.setHostRequestStatusTarget = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional ChatUserInfo target = 7;
 * @return {?proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.ChatMessage.prototype.getTarget = function() {
  return /** @type{?proto.org.couchers.admin.ChatUserInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ChatUserInfo, 7));
};


/**
 * @param {?proto.org.couchers.admin.ChatUserInfo|undefined} value
 * @return {!proto.org.couchers.admin.ChatMessage} returns this
*/
proto.org.couchers.admin.ChatMessage.prototype.setTarget = function(value) {
  return jspb.Message.setWrapperField(this, 7, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.ChatMessage} returns this
 */
proto.org.couchers.admin.ChatMessage.prototype.clearTarget = function() {
  return this.setTarget(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.ChatMessage.prototype.hasTarget = function() {
  return jspb.Message.getField(this, 7) != 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.org.couchers.admin.GroupChatMember.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GroupChatMember.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.org.couchers.admin.GroupChatMember} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GroupChatMember.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: (f = msg.getUser()) && proto.org.couchers.admin.ChatUserInfo.toObject(includeInstance, f),
    joined: (f = msg.getJoined()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    left: (f = msg.getLeft()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    role: jspb.Message.getFieldWithDefault(msg, 4, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GroupChatMember} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GroupChatMember}
 */
proto.org.couchers.admin.GroupChatMember.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.org.couchers.admin.ChatUserInfo;
      reader.readMessage(value,proto.org.couchers.admin.ChatUserInfo.deserializeBinaryFromReader);
      msg.setUser(value);
      break;
    case 2:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setJoined(value);
      break;
    case 3:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setLeft(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setRole(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.GroupChatMember} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GroupChatMember.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUser();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.org.couchers.admin.ChatUserInfo.serializeBinaryToWriter
    );
  }
  f = message.getJoined();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getLeft();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getRole();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
};


/**
 * optional ChatUserInfo user = 1;
 * @return {?proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.GroupChatMember.prototype.getUser = function() {
  return /** @type{?proto.org.couchers.admin.ChatUserInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ChatUserInfo, 1));
};


/**
 * @param {?proto.org.couchers.admin.ChatUserInfo|undefined} value
 * @return {!proto.org.couchers.admin.GroupChatMember} returns this
*/
proto.org.couchers.admin.GroupChatMember.prototype.setUser = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.GroupChatMember} returns this
 */
proto.org.couchers.admin.GroupChatMember.prototype.clearUser = function() {
  return this.setUser(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.GroupChatMember.prototype.hasUser = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional google.protobuf.Timestamp joined = 2;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.GroupChatMember.prototype.getJoined = 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.org.couchers.admin.GroupChatMember} returns this
*/
proto.org.couchers.admin.GroupChatMember.prototype.setJoined = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.GroupChatMember} returns this
 */
proto.org.couchers.admin.GroupChatMember.prototype.clearJoined = function() {
  return this.setJoined(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.GroupChatMember.prototype.hasJoined = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional google.protobuf.Timestamp left = 3;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.GroupChatMember.prototype.getLeft = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.GroupChatMember} returns this
*/
proto.org.couchers.admin.GroupChatMember.prototype.setLeft = function(value) {
  return jspb.Message.setWrapperField(this, 3, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.GroupChatMember} returns this
 */
proto.org.couchers.admin.GroupChatMember.prototype.clearLeft = function() {
  return this.setLeft(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.GroupChatMember.prototype.hasLeft = function() {
  return jspb.Message.getField(this, 3) != null;
};


/**
 * optional string role = 4;
 * @return {string}
 */
proto.org.couchers.admin.GroupChatMember.prototype.getRole = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.GroupChatMember} returns this
 */
proto.org.couchers.admin.GroupChatMember.prototype.setRole = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.AdminGroupChat.repeatedFields_ = [5,6];



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.org.couchers.admin.AdminGroupChat.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AdminGroupChat.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.org.couchers.admin.AdminGroupChat} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminGroupChat.toObject = function(includeInstance, msg) {
  var f, obj = {
    groupChatId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    title: jspb.Message.getFieldWithDefault(msg, 2, ""),
    isDm: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),
    creator: (f = msg.getCreator()) && proto.org.couchers.admin.ChatUserInfo.toObject(includeInstance, f),
    membersList: jspb.Message.toObjectList(msg.getMembersList(),
    proto.org.couchers.admin.GroupChatMember.toObject, includeInstance),
    messagesList: jspb.Message.toObjectList(msg.getMessagesList(),
    proto.org.couchers.admin.ChatMessage.toObject, includeInstance)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AdminGroupChat} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AdminGroupChat}
 */
proto.org.couchers.admin.AdminGroupChat.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.setGroupChatId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setTitle(value);
      break;
    case 3:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsDm(value);
      break;
    case 4:
      var value = new proto.org.couchers.admin.ChatUserInfo;
      reader.readMessage(value,proto.org.couchers.admin.ChatUserInfo.deserializeBinaryFromReader);
      msg.setCreator(value);
      break;
    case 5:
      var value = new proto.org.couchers.admin.GroupChatMember;
      reader.readMessage(value,proto.org.couchers.admin.GroupChatMember.deserializeBinaryFromReader);
      msg.addMembers(value);
      break;
    case 6:
      var value = new proto.org.couchers.admin.ChatMessage;
      reader.readMessage(value,proto.org.couchers.admin.ChatMessage.deserializeBinaryFromReader);
      msg.addMessages(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.AdminGroupChat} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminGroupChat.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getGroupChatId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getTitle();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getIsDm();
  if (f) {
    writer.writeBool(
      3,
      f
    );
  }
  f = message.getCreator();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      proto.org.couchers.admin.ChatUserInfo.serializeBinaryToWriter
    );
  }
  f = message.getMembersList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      5,
      f,
      proto.org.couchers.admin.GroupChatMember.serializeBinaryToWriter
    );
  }
  f = message.getMessagesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      6,
      f,
      proto.org.couchers.admin.ChatMessage.serializeBinaryToWriter
    );
  }
};


/**
 * optional int64 group_chat_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.AdminGroupChat.prototype.getGroupChatId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminGroupChat} returns this
 */
proto.org.couchers.admin.AdminGroupChat.prototype.setGroupChatId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string title = 2;
 * @return {string}
 */
proto.org.couchers.admin.AdminGroupChat.prototype.getTitle = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminGroupChat} returns this
 */
proto.org.couchers.admin.AdminGroupChat.prototype.setTitle = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional bool is_dm = 3;
 * @return {boolean}
 */
proto.org.couchers.admin.AdminGroupChat.prototype.getIsDm = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.AdminGroupChat} returns this
 */
proto.org.couchers.admin.AdminGroupChat.prototype.setIsDm = function(value) {
  return jspb.Message.setProto3BooleanField(this, 3, value);
};


/**
 * optional ChatUserInfo creator = 4;
 * @return {?proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.AdminGroupChat.prototype.getCreator = function() {
  return /** @type{?proto.org.couchers.admin.ChatUserInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ChatUserInfo, 4));
};


/**
 * @param {?proto.org.couchers.admin.ChatUserInfo|undefined} value
 * @return {!proto.org.couchers.admin.AdminGroupChat} returns this
*/
proto.org.couchers.admin.AdminGroupChat.prototype.setCreator = function(value) {
  return jspb.Message.setWrapperField(this, 4, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminGroupChat} returns this
 */
proto.org.couchers.admin.AdminGroupChat.prototype.clearCreator = function() {
  return this.setCreator(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminGroupChat.prototype.hasCreator = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * repeated GroupChatMember members = 5;
 * @return {!Array<!proto.org.couchers.admin.GroupChatMember>}
 */
proto.org.couchers.admin.AdminGroupChat.prototype.getMembersList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.GroupChatMember>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.GroupChatMember, 5));
};


/**
 * @param {!Array<!proto.org.couchers.admin.GroupChatMember>} value
 * @return {!proto.org.couchers.admin.AdminGroupChat} returns this
*/
proto.org.couchers.admin.AdminGroupChat.prototype.setMembersList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 5, value);
};


/**
 * @param {!proto.org.couchers.admin.GroupChatMember=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.GroupChatMember}
 */
proto.org.couchers.admin.AdminGroupChat.prototype.addMembers = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.org.couchers.admin.GroupChatMember, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.AdminGroupChat} returns this
 */
proto.org.couchers.admin.AdminGroupChat.prototype.clearMembersList = function() {
  return this.setMembersList([]);
};


/**
 * repeated ChatMessage messages = 6;
 * @return {!Array<!proto.org.couchers.admin.ChatMessage>}
 */
proto.org.couchers.admin.AdminGroupChat.prototype.getMessagesList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.ChatMessage>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.ChatMessage, 6));
};


/**
 * @param {!Array<!proto.org.couchers.admin.ChatMessage>} value
 * @return {!proto.org.couchers.admin.AdminGroupChat} returns this
*/
proto.org.couchers.admin.AdminGroupChat.prototype.setMessagesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 6, value);
};


/**
 * @param {!proto.org.couchers.admin.ChatMessage=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.ChatMessage}
 */
proto.org.couchers.admin.AdminGroupChat.prototype.addMessages = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.org.couchers.admin.ChatMessage, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.AdminGroupChat} returns this
 */
proto.org.couchers.admin.AdminGroupChat.prototype.clearMessagesList = function() {
  return this.setMessagesList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.AdminHostRequest.repeatedFields_ = [8];



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.org.couchers.admin.AdminHostRequest.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AdminHostRequest.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.org.couchers.admin.AdminHostRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminHostRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    hostRequestId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    surfer: (f = msg.getSurfer()) && proto.org.couchers.admin.ChatUserInfo.toObject(includeInstance, f),
    host: (f = msg.getHost()) && proto.org.couchers.admin.ChatUserInfo.toObject(includeInstance, f),
    status: jspb.Message.getFieldWithDefault(msg, 4, ""),
    fromDate: jspb.Message.getFieldWithDefault(msg, 5, ""),
    toDate: jspb.Message.getFieldWithDefault(msg, 6, ""),
    created: (f = msg.getCreated()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    messagesList: jspb.Message.toObjectList(msg.getMessagesList(),
    proto.org.couchers.admin.ChatMessage.toObject, includeInstance)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AdminHostRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AdminHostRequest}
 */
proto.org.couchers.admin.AdminHostRequest.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.setHostRequestId(value);
      break;
    case 2:
      var value = new proto.org.couchers.admin.ChatUserInfo;
      reader.readMessage(value,proto.org.couchers.admin.ChatUserInfo.deserializeBinaryFromReader);
      msg.setSurfer(value);
      break;
    case 3:
      var value = new proto.org.couchers.admin.ChatUserInfo;
      reader.readMessage(value,proto.org.couchers.admin.ChatUserInfo.deserializeBinaryFromReader);
      msg.setHost(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setStatus(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setFromDate(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setToDate(value);
      break;
    case 7:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setCreated(value);
      break;
    case 8:
      var value = new proto.org.couchers.admin.ChatMessage;
      reader.readMessage(value,proto.org.couchers.admin.ChatMessage.deserializeBinaryFromReader);
      msg.addMessages(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.AdminHostRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminHostRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getHostRequestId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getSurfer();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.org.couchers.admin.ChatUserInfo.serializeBinaryToWriter
    );
  }
  f = message.getHost();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      proto.org.couchers.admin.ChatUserInfo.serializeBinaryToWriter
    );
  }
  f = message.getStatus();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getFromDate();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getToDate();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getCreated();
  if (f != null) {
    writer.writeMessage(
      7,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getMessagesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      8,
      f,
      proto.org.couchers.admin.ChatMessage.serializeBinaryToWriter
    );
  }
};


/**
 * optional int64 host_request_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.AdminHostRequest.prototype.getHostRequestId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminHostRequest} returns this
 */
proto.org.couchers.admin.AdminHostRequest.prototype.setHostRequestId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional ChatUserInfo surfer = 2;
 * @return {?proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.AdminHostRequest.prototype.getSurfer = function() {
  return /** @type{?proto.org.couchers.admin.ChatUserInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ChatUserInfo, 2));
};


/**
 * @param {?proto.org.couchers.admin.ChatUserInfo|undefined} value
 * @return {!proto.org.couchers.admin.AdminHostRequest} returns this
*/
proto.org.couchers.admin.AdminHostRequest.prototype.setSurfer = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminHostRequest} returns this
 */
proto.org.couchers.admin.AdminHostRequest.prototype.clearSurfer = function() {
  return this.setSurfer(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminHostRequest.prototype.hasSurfer = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional ChatUserInfo host = 3;
 * @return {?proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.AdminHostRequest.prototype.getHost = function() {
  return /** @type{?proto.org.couchers.admin.ChatUserInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ChatUserInfo, 3));
};


/**
 * @param {?proto.org.couchers.admin.ChatUserInfo|undefined} value
 * @return {!proto.org.couchers.admin.AdminHostRequest} returns this
*/
proto.org.couchers.admin.AdminHostRequest.prototype.setHost = function(value) {
  return jspb.Message.setWrapperField(this, 3, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminHostRequest} returns this
 */
proto.org.couchers.admin.AdminHostRequest.prototype.clearHost = function() {
  return this.setHost(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminHostRequest.prototype.hasHost = function() {
  return jspb.Message.getField(this, 3) != null;
};


/**
 * optional string status = 4;
 * @return {string}
 */
proto.org.couchers.admin.AdminHostRequest.prototype.getStatus = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminHostRequest} returns this
 */
proto.org.couchers.admin.AdminHostRequest.prototype.setStatus = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string from_date = 5;
 * @return {string}
 */
proto.org.couchers.admin.AdminHostRequest.prototype.getFromDate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminHostRequest} returns this
 */
proto.org.couchers.admin.AdminHostRequest.prototype.setFromDate = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string to_date = 6;
 * @return {string}
 */
proto.org.couchers.admin.AdminHostRequest.prototype.getToDate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminHostRequest} returns this
 */
proto.org.couchers.admin.AdminHostRequest.prototype.setToDate = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional google.protobuf.Timestamp created = 7;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.AdminHostRequest.prototype.getCreated = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 7));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.AdminHostRequest} returns this
*/
proto.org.couchers.admin.AdminHostRequest.prototype.setCreated = function(value) {
  return jspb.Message.setWrapperField(this, 7, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminHostRequest} returns this
 */
proto.org.couchers.admin.AdminHostRequest.prototype.clearCreated = function() {
  return this.setCreated(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminHostRequest.prototype.hasCreated = function() {
  return jspb.Message.getField(this, 7) != null;
};


/**
 * repeated ChatMessage messages = 8;
 * @return {!Array<!proto.org.couchers.admin.ChatMessage>}
 */
proto.org.couchers.admin.AdminHostRequest.prototype.getMessagesList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.ChatMessage>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.ChatMessage, 8));
};


/**
 * @param {!Array<!proto.org.couchers.admin.ChatMessage>} value
 * @return {!proto.org.couchers.admin.AdminHostRequest} returns this
*/
proto.org.couchers.admin.AdminHostRequest.prototype.setMessagesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 8, value);
};


/**
 * @param {!proto.org.couchers.admin.ChatMessage=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.ChatMessage}
 */
proto.org.couchers.admin.AdminHostRequest.prototype.addMessages = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.org.couchers.admin.ChatMessage, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.AdminHostRequest} returns this
 */
proto.org.couchers.admin.AdminHostRequest.prototype.clearMessagesList = function() {
  return this.setMessagesList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.GetChatsRes.repeatedFields_ = [2,3];



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.org.couchers.admin.GetChatsRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetChatsRes.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.org.couchers.admin.GetChatsRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetChatsRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: (f = msg.getUser()) && proto.org.couchers.admin.ChatUserInfo.toObject(includeInstance, f),
    hostRequestsList: jspb.Message.toObjectList(msg.getHostRequestsList(),
    proto.org.couchers.admin.AdminHostRequest.toObject, includeInstance),
    groupChatsList: jspb.Message.toObjectList(msg.getGroupChatsList(),
    proto.org.couchers.admin.AdminGroupChat.toObject, includeInstance)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetChatsRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetChatsRes}
 */
proto.org.couchers.admin.GetChatsRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.org.couchers.admin.ChatUserInfo;
      reader.readMessage(value,proto.org.couchers.admin.ChatUserInfo.deserializeBinaryFromReader);
      msg.setUser(value);
      break;
    case 2:
      var value = new proto.org.couchers.admin.AdminHostRequest;
      reader.readMessage(value,proto.org.couchers.admin.AdminHostRequest.deserializeBinaryFromReader);
      msg.addHostRequests(value);
      break;
    case 3:
      var value = new proto.org.couchers.admin.AdminGroupChat;
      reader.readMessage(value,proto.org.couchers.admin.AdminGroupChat.deserializeBinaryFromReader);
      msg.addGroupChats(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.GetChatsRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetChatsRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUser();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.org.couchers.admin.ChatUserInfo.serializeBinaryToWriter
    );
  }
  f = message.getHostRequestsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.org.couchers.admin.AdminHostRequest.serializeBinaryToWriter
    );
  }
  f = message.getGroupChatsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      3,
      f,
      proto.org.couchers.admin.AdminGroupChat.serializeBinaryToWriter
    );
  }
};


/**
 * optional ChatUserInfo user = 1;
 * @return {?proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.GetChatsRes.prototype.getUser = function() {
  return /** @type{?proto.org.couchers.admin.ChatUserInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ChatUserInfo, 1));
};


/**
 * @param {?proto.org.couchers.admin.ChatUserInfo|undefined} value
 * @return {!proto.org.couchers.admin.GetChatsRes} returns this
*/
proto.org.couchers.admin.GetChatsRes.prototype.setUser = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.GetChatsRes} returns this
 */
proto.org.couchers.admin.GetChatsRes.prototype.clearUser = function() {
  return this.setUser(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.GetChatsRes.prototype.hasUser = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * repeated AdminHostRequest host_requests = 2;
 * @return {!Array<!proto.org.couchers.admin.AdminHostRequest>}
 */
proto.org.couchers.admin.GetChatsRes.prototype.getHostRequestsList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.AdminHostRequest>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.AdminHostRequest, 2));
};


/**
 * @param {!Array<!proto.org.couchers.admin.AdminHostRequest>} value
 * @return {!proto.org.couchers.admin.GetChatsRes} returns this
*/
proto.org.couchers.admin.GetChatsRes.prototype.setHostRequestsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.org.couchers.admin.AdminHostRequest=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AdminHostRequest}
 */
proto.org.couchers.admin.GetChatsRes.prototype.addHostRequests = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.org.couchers.admin.AdminHostRequest, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.GetChatsRes} returns this
 */
proto.org.couchers.admin.GetChatsRes.prototype.clearHostRequestsList = function() {
  return this.setHostRequestsList([]);
};


/**
 * repeated AdminGroupChat group_chats = 3;
 * @return {!Array<!proto.org.couchers.admin.AdminGroupChat>}
 */
proto.org.couchers.admin.GetChatsRes.prototype.getGroupChatsList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.AdminGroupChat>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.AdminGroupChat, 3));
};


/**
 * @param {!Array<!proto.org.couchers.admin.AdminGroupChat>} value
 * @return {!proto.org.couchers.admin.GetChatsRes} returns this
*/
proto.org.couchers.admin.GetChatsRes.prototype.setGroupChatsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 3, value);
};


/**
 * @param {!proto.org.couchers.admin.AdminGroupChat=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AdminGroupChat}
 */
proto.org.couchers.admin.GetChatsRes.prototype.addGroupChats = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.org.couchers.admin.AdminGroupChat, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.GetChatsRes} returns this
 */
proto.org.couchers.admin.GetChatsRes.prototype.clearGroupChatsList = function() {
  return this.setGroupChatsList([]);
};





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.org.couchers.admin.DeleteEventReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.DeleteEventReq.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.org.couchers.admin.DeleteEventReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.DeleteEventReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    eventId: jspb.Message.getFieldWithDefault(msg, 1, 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.org.couchers.admin.DeleteEventReq}
 */
proto.org.couchers.admin.DeleteEventReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.DeleteEventReq;
  return proto.org.couchers.admin.DeleteEventReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.DeleteEventReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.DeleteEventReq}
 */
proto.org.couchers.admin.DeleteEventReq.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.setEventId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional int64 event_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.DeleteEventReq.prototype.getEventId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.DeleteEventReq} returns this
 */
proto.org.couchers.admin.DeleteEventReq.prototype.setEventId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, 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.org.couchers.admin.ListUserIdsReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ListUserIdsReq.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.org.couchers.admin.ListUserIdsReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListUserIdsReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    startTime: (f = msg.getStartTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    endTime: (f = msg.getEndTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    pageSize: jspb.Message.getFieldWithDefault(msg, 3, 0),
    pageToken: jspb.Message.getFieldWithDefault(msg, 4, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ListUserIdsReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ListUserIdsReq}
 */
proto.org.couchers.admin.ListUserIdsReq.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.setStartTime(value);
      break;
    case 2:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setEndTime(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setPageSize(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ListUserIdsReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListUserIdsReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getStartTime();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getEndTime();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getPageSize();
  if (f !== 0) {
    writer.writeUint32(
      3,
      f
    );
  }
  f = message.getPageToken();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
};


/**
 * optional google.protobuf.Timestamp start_time = 1;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.ListUserIdsReq.prototype.getStartTime = 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.org.couchers.admin.ListUserIdsReq} returns this
*/
proto.org.couchers.admin.ListUserIdsReq.prototype.setStartTime = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.ListUserIdsReq} returns this
 */
proto.org.couchers.admin.ListUserIdsReq.prototype.clearStartTime = function() {
  return this.setStartTime(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.ListUserIdsReq.prototype.hasStartTime = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional google.protobuf.Timestamp end_time = 2;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.ListUserIdsReq.prototype.getEndTime = 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.org.couchers.admin.ListUserIdsReq} returns this
*/
proto.org.couchers.admin.ListUserIdsReq.prototype.setEndTime = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.ListUserIdsReq} returns this
 */
proto.org.couchers.admin.ListUserIdsReq.prototype.clearEndTime = function() {
  return this.setEndTime(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.ListUserIdsReq.prototype.hasEndTime = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional uint32 page_size = 3;
 * @return {number}
 */
proto.org.couchers.admin.ListUserIdsReq.prototype.getPageSize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.ListUserIdsReq} returns this
 */
proto.org.couchers.admin.ListUserIdsReq.prototype.setPageSize = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional string page_token = 4;
 * @return {string}
 */
proto.org.couchers.admin.ListUserIdsReq.prototype.getPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ListUserIdsReq} returns this
 */
proto.org.couchers.admin.ListUserIdsReq.prototype.setPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.ListUserIdsRes.repeatedFields_ = [1];



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.org.couchers.admin.ListUserIdsRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ListUserIdsRes.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.org.couchers.admin.ListUserIdsRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListUserIdsRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    userIdsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f,
    nextPageToken: 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.org.couchers.admin.ListUserIdsRes}
 */
proto.org.couchers.admin.ListUserIdsRes.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.ListUserIdsRes;
  return proto.org.couchers.admin.ListUserIdsRes.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ListUserIdsRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ListUserIdsRes}
 */
proto.org.couchers.admin.ListUserIdsRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt64() : [reader.readInt64()]);
      for (var i = 0; i < values.length; i++) {
        msg.addUserIds(values[i]);
      }
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setNextPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * repeated int64 user_ids = 1;
 * @return {!Array<number>}
 */
proto.org.couchers.admin.ListUserIdsRes.prototype.getUserIdsList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 1));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.org.couchers.admin.ListUserIdsRes} returns this
 */
proto.org.couchers.admin.ListUserIdsRes.prototype.setUserIdsList = function(value) {
  return jspb.Message.setField(this, 1, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.ListUserIdsRes} returns this
 */
proto.org.couchers.admin.ListUserIdsRes.prototype.addUserIds = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.ListUserIdsRes} returns this
 */
proto.org.couchers.admin.ListUserIdsRes.prototype.clearUserIdsList = function() {
  return this.setUserIdsList([]);
};


/**
 * optional string next_page_token = 2;
 * @return {string}
 */
proto.org.couchers.admin.ListUserIdsRes.prototype.getNextPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ListUserIdsRes} returns this
 */
proto.org.couchers.admin.ListUserIdsRes.prototype.setNextPageToken = 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.org.couchers.admin.EditReferenceTextReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.EditReferenceTextReq.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.org.couchers.admin.EditReferenceTextReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.EditReferenceTextReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    referenceId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newText: 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.org.couchers.admin.EditReferenceTextReq}
 */
proto.org.couchers.admin.EditReferenceTextReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.EditReferenceTextReq;
  return proto.org.couchers.admin.EditReferenceTextReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.EditReferenceTextReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.EditReferenceTextReq}
 */
proto.org.couchers.admin.EditReferenceTextReq.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.setReferenceId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setNewText(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional int64 reference_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.EditReferenceTextReq.prototype.getReferenceId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.EditReferenceTextReq} returns this
 */
proto.org.couchers.admin.EditReferenceTextReq.prototype.setReferenceId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string new_text = 2;
 * @return {string}
 */
proto.org.couchers.admin.EditReferenceTextReq.prototype.getNewText = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.EditReferenceTextReq} returns this
 */
proto.org.couchers.admin.EditReferenceTextReq.prototype.setNewText = 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.org.couchers.admin.DeleteReferenceReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.DeleteReferenceReq.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.org.couchers.admin.DeleteReferenceReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.DeleteReferenceReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    referenceId: jspb.Message.getFieldWithDefault(msg, 1, 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.org.couchers.admin.DeleteReferenceReq}
 */
proto.org.couchers.admin.DeleteReferenceReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.DeleteReferenceReq;
  return proto.org.couchers.admin.DeleteReferenceReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.DeleteReferenceReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.DeleteReferenceReq}
 */
proto.org.couchers.admin.DeleteReferenceReq.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.setReferenceId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional int64 reference_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.DeleteReferenceReq.prototype.getReferenceId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.DeleteReferenceReq} returns this
 */
proto.org.couchers.admin.DeleteReferenceReq.prototype.setReferenceId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, 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.org.couchers.admin.GetUserReferencesReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetUserReferencesReq.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.org.couchers.admin.GetUserReferencesReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetUserReferencesReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetUserReferencesReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetUserReferencesReq}
 */
proto.org.couchers.admin.GetUserReferencesReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.GetUserReferencesReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.GetUserReferencesReq} returns this
 */
proto.org.couchers.admin.GetUserReferencesReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, 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.org.couchers.admin.AdminReference.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AdminReference.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.org.couchers.admin.AdminReference} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminReference.toObject = function(includeInstance, msg) {
  var f, obj = {
    referenceId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    fromUserId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    toUserId: jspb.Message.getFieldWithDefault(msg, 3, 0),
    referenceType: jspb.Message.getFieldWithDefault(msg, 4, ""),
    text: jspb.Message.getFieldWithDefault(msg, 5, ""),
    privateText: jspb.Message.getFieldWithDefault(msg, 6, ""),
    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    hostRequestId: jspb.Message.getFieldWithDefault(msg, 8, 0),
    rating: jspb.Message.getFloatingPointFieldWithDefault(msg, 9, 0.0),
    wasAppropriate: jspb.Message.getBooleanFieldWithDefault(msg, 10, false),
    fromUser: (f = msg.getFromUser()) && proto.org.couchers.admin.ChatUserInfo.toObject(includeInstance, f),
    toUser: (f = msg.getToUser()) && proto.org.couchers.admin.ChatUserInfo.toObject(includeInstance, f),
    moderationVisibility: jspb.Message.getFieldWithDefault(msg, 14, ""),
    hostingCity: jspb.Message.getFieldWithDefault(msg, 15, ""),
    fromDate: jspb.Message.getFieldWithDefault(msg, 16, ""),
    toDate: jspb.Message.getFieldWithDefault(msg, 17, ""),
    status: jspb.Message.getFieldWithDefault(msg, 18, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AdminReference} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AdminReference}
 */
proto.org.couchers.admin.AdminReference.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.setReferenceId(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setFromUserId(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setToUserId(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setReferenceType(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setText(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setPrivateText(value);
      break;
    case 7:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setTime(value);
      break;
    case 8:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setHostRequestId(value);
      break;
    case 9:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setRating(value);
      break;
    case 10:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setWasAppropriate(value);
      break;
    case 12:
      var value = new proto.org.couchers.admin.ChatUserInfo;
      reader.readMessage(value,proto.org.couchers.admin.ChatUserInfo.deserializeBinaryFromReader);
      msg.setFromUser(value);
      break;
    case 13:
      var value = new proto.org.couchers.admin.ChatUserInfo;
      reader.readMessage(value,proto.org.couchers.admin.ChatUserInfo.deserializeBinaryFromReader);
      msg.setToUser(value);
      break;
    case 14:
      var value = /** @type {string} */ (reader.readString());
      msg.setModerationVisibility(value);
      break;
    case 15:
      var value = /** @type {string} */ (reader.readString());
      msg.setHostingCity(value);
      break;
    case 16:
      var value = /** @type {string} */ (reader.readString());
      msg.setFromDate(value);
      break;
    case 17:
      var value = /** @type {string} */ (reader.readString());
      msg.setToDate(value);
      break;
    case 18:
      var value = /** @type {string} */ (reader.readString());
      msg.setStatus(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.AdminReference} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminReference.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getReferenceId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getFromUserId();
  if (f !== 0) {
    writer.writeInt64(
      2,
      f
    );
  }
  f = message.getToUserId();
  if (f !== 0) {
    writer.writeInt64(
      3,
      f
    );
  }
  f = message.getReferenceType();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getText();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getPrivateText();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getTime();
  if (f != null) {
    writer.writeMessage(
      7,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getHostRequestId();
  if (f !== 0) {
    writer.writeInt64(
      8,
      f
    );
  }
  f = message.getRating();
  if (f !== 0.0) {
    writer.writeDouble(
      9,
      f
    );
  }
  f = message.getWasAppropriate();
  if (f) {
    writer.writeBool(
      10,
      f
    );
  }
  f = message.getFromUser();
  if (f != null) {
    writer.writeMessage(
      12,
      f,
      proto.org.couchers.admin.ChatUserInfo.serializeBinaryToWriter
    );
  }
  f = message.getToUser();
  if (f != null) {
    writer.writeMessage(
      13,
      f,
      proto.org.couchers.admin.ChatUserInfo.serializeBinaryToWriter
    );
  }
  f = message.getModerationVisibility();
  if (f.length > 0) {
    writer.writeString(
      14,
      f
    );
  }
  f = message.getHostingCity();
  if (f.length > 0) {
    writer.writeString(
      15,
      f
    );
  }
  f = message.getFromDate();
  if (f.length > 0) {
    writer.writeString(
      16,
      f
    );
  }
  f = message.getToDate();
  if (f.length > 0) {
    writer.writeString(
      17,
      f
    );
  }
  f = message.getStatus();
  if (f.length > 0) {
    writer.writeString(
      18,
      f
    );
  }
};


/**
 * optional int64 reference_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.AdminReference.prototype.getReferenceId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setReferenceId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional int64 from_user_id = 2;
 * @return {number}
 */
proto.org.couchers.admin.AdminReference.prototype.getFromUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setFromUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional int64 to_user_id = 3;
 * @return {number}
 */
proto.org.couchers.admin.AdminReference.prototype.getToUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setToUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional string reference_type = 4;
 * @return {string}
 */
proto.org.couchers.admin.AdminReference.prototype.getReferenceType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setReferenceType = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string text = 5;
 * @return {string}
 */
proto.org.couchers.admin.AdminReference.prototype.getText = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setText = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string private_text = 6;
 * @return {string}
 */
proto.org.couchers.admin.AdminReference.prototype.getPrivateText = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setPrivateText = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional google.protobuf.Timestamp time = 7;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.AdminReference.prototype.getTime = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 7));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
*/
proto.org.couchers.admin.AdminReference.prototype.setTime = function(value) {
  return jspb.Message.setWrapperField(this, 7, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.clearTime = function() {
  return this.setTime(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminReference.prototype.hasTime = function() {
  return jspb.Message.getField(this, 7) != null;
};


/**
 * optional int64 host_request_id = 8;
 * @return {number}
 */
proto.org.couchers.admin.AdminReference.prototype.getHostRequestId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setHostRequestId = function(value) {
  return jspb.Message.setProto3IntField(this, 8, value);
};


/**
 * optional double rating = 9;
 * @return {number}
 */
proto.org.couchers.admin.AdminReference.prototype.getRating = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 9, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setRating = function(value) {
  return jspb.Message.setProto3FloatField(this, 9, value);
};


/**
 * optional bool was_appropriate = 10;
 * @return {boolean}
 */
proto.org.couchers.admin.AdminReference.prototype.getWasAppropriate = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setWasAppropriate = function(value) {
  return jspb.Message.setProto3BooleanField(this, 10, value);
};


/**
 * optional ChatUserInfo from_user = 12;
 * @return {?proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.AdminReference.prototype.getFromUser = function() {
  return /** @type{?proto.org.couchers.admin.ChatUserInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ChatUserInfo, 12));
};


/**
 * @param {?proto.org.couchers.admin.ChatUserInfo|undefined} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
*/
proto.org.couchers.admin.AdminReference.prototype.setFromUser = function(value) {
  return jspb.Message.setWrapperField(this, 12, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.clearFromUser = function() {
  return this.setFromUser(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminReference.prototype.hasFromUser = function() {
  return jspb.Message.getField(this, 12) != null;
};


/**
 * optional ChatUserInfo to_user = 13;
 * @return {?proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.AdminReference.prototype.getToUser = function() {
  return /** @type{?proto.org.couchers.admin.ChatUserInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ChatUserInfo, 13));
};


/**
 * @param {?proto.org.couchers.admin.ChatUserInfo|undefined} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
*/
proto.org.couchers.admin.AdminReference.prototype.setToUser = function(value) {
  return jspb.Message.setWrapperField(this, 13, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.clearToUser = function() {
  return this.setToUser(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminReference.prototype.hasToUser = function() {
  return jspb.Message.getField(this, 13) != null;
};


/**
 * optional string moderation_visibility = 14;
 * @return {string}
 */
proto.org.couchers.admin.AdminReference.prototype.getModerationVisibility = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setModerationVisibility = function(value) {
  return jspb.Message.setProto3StringField(this, 14, value);
};


/**
 * optional string hosting_city = 15;
 * @return {string}
 */
proto.org.couchers.admin.AdminReference.prototype.getHostingCity = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setHostingCity = function(value) {
  return jspb.Message.setProto3StringField(this, 15, value);
};


/**
 * optional string from_date = 16;
 * @return {string}
 */
proto.org.couchers.admin.AdminReference.prototype.getFromDate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 16, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setFromDate = function(value) {
  return jspb.Message.setProto3StringField(this, 16, value);
};


/**
 * optional string to_date = 17;
 * @return {string}
 */
proto.org.couchers.admin.AdminReference.prototype.getToDate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setToDate = function(value) {
  return jspb.Message.setProto3StringField(this, 17, value);
};


/**
 * optional string status = 18;
 * @return {string}
 */
proto.org.couchers.admin.AdminReference.prototype.getStatus = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 18, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminReference} returns this
 */
proto.org.couchers.admin.AdminReference.prototype.setStatus = function(value) {
  return jspb.Message.setProto3StringField(this, 18, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.GetUserReferencesRes.repeatedFields_ = [1,2];



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.org.couchers.admin.GetUserReferencesRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetUserReferencesRes.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.org.couchers.admin.GetUserReferencesRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetUserReferencesRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    referencesFromList: jspb.Message.toObjectList(msg.getReferencesFromList(),
    proto.org.couchers.admin.AdminReference.toObject, includeInstance),
    referencesToList: jspb.Message.toObjectList(msg.getReferencesToList(),
    proto.org.couchers.admin.AdminReference.toObject, includeInstance)
  };

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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.GetUserReferencesRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetUserReferencesRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getReferencesFromList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.org.couchers.admin.AdminReference.serializeBinaryToWriter
    );
  }
  f = message.getReferencesToList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.org.couchers.admin.AdminReference.serializeBinaryToWriter
    );
  }
};


/**
 * repeated AdminReference references_from = 1;
 * @return {!Array<!proto.org.couchers.admin.AdminReference>}
 */
proto.org.couchers.admin.GetUserReferencesRes.prototype.getReferencesFromList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.AdminReference>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.AdminReference, 1));
};


/**
 * @param {!Array<!proto.org.couchers.admin.AdminReference>} value
 * @return {!proto.org.couchers.admin.GetUserReferencesRes} returns this
*/
proto.org.couchers.admin.GetUserReferencesRes.prototype.setReferencesFromList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.org.couchers.admin.AdminReference=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AdminReference}
 */
proto.org.couchers.admin.GetUserReferencesRes.prototype.addReferencesFrom = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.couchers.admin.AdminReference, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.GetUserReferencesRes} returns this
 */
proto.org.couchers.admin.GetUserReferencesRes.prototype.clearReferencesFromList = function() {
  return this.setReferencesFromList([]);
};


/**
 * repeated AdminReference references_to = 2;
 * @return {!Array<!proto.org.couchers.admin.AdminReference>}
 */
proto.org.couchers.admin.GetUserReferencesRes.prototype.getReferencesToList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.AdminReference>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.AdminReference, 2));
};


/**
 * @param {!Array<!proto.org.couchers.admin.AdminReference>} value
 * @return {!proto.org.couchers.admin.GetUserReferencesRes} returns this
*/
proto.org.couchers.admin.GetUserReferencesRes.prototype.setReferencesToList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.org.couchers.admin.AdminReference=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AdminReference}
 */
proto.org.couchers.admin.GetUserReferencesRes.prototype.addReferencesTo = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.org.couchers.admin.AdminReference, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.GetUserReferencesRes} returns this
 */
proto.org.couchers.admin.GetUserReferencesRes.prototype.clearReferencesToList = function() {
  return this.setReferencesToList([]);
};





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.org.couchers.admin.GetFriendRequestsReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetFriendRequestsReq.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.org.couchers.admin.GetFriendRequestsReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetFriendRequestsReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetFriendRequestsReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetFriendRequestsReq}
 */
proto.org.couchers.admin.GetFriendRequestsReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.GetFriendRequestsReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.GetFriendRequestsReq} returns this
 */
proto.org.couchers.admin.GetFriendRequestsReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, 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.org.couchers.admin.AdminFriendRequest.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AdminFriendRequest.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.org.couchers.admin.AdminFriendRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminFriendRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    friendRequestId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    fromUser: (f = msg.getFromUser()) && proto.org.couchers.admin.ChatUserInfo.toObject(includeInstance, f),
    toUser: (f = msg.getToUser()) && proto.org.couchers.admin.ChatUserInfo.toObject(includeInstance, f),
    status: jspb.Message.getFieldWithDefault(msg, 4, ""),
    timeSent: (f = msg.getTimeSent()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    timeResponded: (f = msg.getTimeResponded()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    moderationVisibility: jspb.Message.getFieldWithDefault(msg, 7, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AdminFriendRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AdminFriendRequest}
 */
proto.org.couchers.admin.AdminFriendRequest.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.setFriendRequestId(value);
      break;
    case 2:
      var value = new proto.org.couchers.admin.ChatUserInfo;
      reader.readMessage(value,proto.org.couchers.admin.ChatUserInfo.deserializeBinaryFromReader);
      msg.setFromUser(value);
      break;
    case 3:
      var value = new proto.org.couchers.admin.ChatUserInfo;
      reader.readMessage(value,proto.org.couchers.admin.ChatUserInfo.deserializeBinaryFromReader);
      msg.setToUser(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setStatus(value);
      break;
    case 5:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setTimeSent(value);
      break;
    case 6:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setTimeResponded(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setModerationVisibility(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.AdminFriendRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminFriendRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getFriendRequestId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getFromUser();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.org.couchers.admin.ChatUserInfo.serializeBinaryToWriter
    );
  }
  f = message.getToUser();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      proto.org.couchers.admin.ChatUserInfo.serializeBinaryToWriter
    );
  }
  f = message.getStatus();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getTimeSent();
  if (f != null) {
    writer.writeMessage(
      5,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getTimeResponded();
  if (f != null) {
    writer.writeMessage(
      6,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getModerationVisibility();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
};


/**
 * optional int64 friend_request_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.getFriendRequestId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminFriendRequest} returns this
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.setFriendRequestId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional ChatUserInfo from_user = 2;
 * @return {?proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.getFromUser = function() {
  return /** @type{?proto.org.couchers.admin.ChatUserInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ChatUserInfo, 2));
};


/**
 * @param {?proto.org.couchers.admin.ChatUserInfo|undefined} value
 * @return {!proto.org.couchers.admin.AdminFriendRequest} returns this
*/
proto.org.couchers.admin.AdminFriendRequest.prototype.setFromUser = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminFriendRequest} returns this
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.clearFromUser = function() {
  return this.setFromUser(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.hasFromUser = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional ChatUserInfo to_user = 3;
 * @return {?proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.getToUser = function() {
  return /** @type{?proto.org.couchers.admin.ChatUserInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ChatUserInfo, 3));
};


/**
 * @param {?proto.org.couchers.admin.ChatUserInfo|undefined} value
 * @return {!proto.org.couchers.admin.AdminFriendRequest} returns this
*/
proto.org.couchers.admin.AdminFriendRequest.prototype.setToUser = function(value) {
  return jspb.Message.setWrapperField(this, 3, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminFriendRequest} returns this
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.clearToUser = function() {
  return this.setToUser(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.hasToUser = function() {
  return jspb.Message.getField(this, 3) != null;
};


/**
 * optional string status = 4;
 * @return {string}
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.getStatus = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminFriendRequest} returns this
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.setStatus = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional google.protobuf.Timestamp time_sent = 5;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.getTimeSent = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 5));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.AdminFriendRequest} returns this
*/
proto.org.couchers.admin.AdminFriendRequest.prototype.setTimeSent = function(value) {
  return jspb.Message.setWrapperField(this, 5, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminFriendRequest} returns this
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.clearTimeSent = function() {
  return this.setTimeSent(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.hasTimeSent = function() {
  return jspb.Message.getField(this, 5) != null;
};


/**
 * optional google.protobuf.Timestamp time_responded = 6;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.getTimeResponded = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 6));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.AdminFriendRequest} returns this
*/
proto.org.couchers.admin.AdminFriendRequest.prototype.setTimeResponded = function(value) {
  return jspb.Message.setWrapperField(this, 6, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminFriendRequest} returns this
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.clearTimeResponded = function() {
  return this.setTimeResponded(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.hasTimeResponded = function() {
  return jspb.Message.getField(this, 6) != null;
};


/**
 * optional string moderation_visibility = 7;
 * @return {string}
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.getModerationVisibility = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AdminFriendRequest} returns this
 */
proto.org.couchers.admin.AdminFriendRequest.prototype.setModerationVisibility = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.GetFriendRequestsRes.repeatedFields_ = [1,2];



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.org.couchers.admin.GetFriendRequestsRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetFriendRequestsRes.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.org.couchers.admin.GetFriendRequestsRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetFriendRequestsRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    sentList: jspb.Message.toObjectList(msg.getSentList(),
    proto.org.couchers.admin.AdminFriendRequest.toObject, includeInstance),
    receivedList: jspb.Message.toObjectList(msg.getReceivedList(),
    proto.org.couchers.admin.AdminFriendRequest.toObject, includeInstance)
  };

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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.GetFriendRequestsRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetFriendRequestsRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSentList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.org.couchers.admin.AdminFriendRequest.serializeBinaryToWriter
    );
  }
  f = message.getReceivedList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.org.couchers.admin.AdminFriendRequest.serializeBinaryToWriter
    );
  }
};


/**
 * repeated AdminFriendRequest sent = 1;
 * @return {!Array<!proto.org.couchers.admin.AdminFriendRequest>}
 */
proto.org.couchers.admin.GetFriendRequestsRes.prototype.getSentList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.AdminFriendRequest>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.AdminFriendRequest, 1));
};


/**
 * @param {!Array<!proto.org.couchers.admin.AdminFriendRequest>} value
 * @return {!proto.org.couchers.admin.GetFriendRequestsRes} returns this
*/
proto.org.couchers.admin.GetFriendRequestsRes.prototype.setSentList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.org.couchers.admin.AdminFriendRequest=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AdminFriendRequest}
 */
proto.org.couchers.admin.GetFriendRequestsRes.prototype.addSent = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.couchers.admin.AdminFriendRequest, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.GetFriendRequestsRes} returns this
 */
proto.org.couchers.admin.GetFriendRequestsRes.prototype.clearSentList = function() {
  return this.setSentList([]);
};


/**
 * repeated AdminFriendRequest received = 2;
 * @return {!Array<!proto.org.couchers.admin.AdminFriendRequest>}
 */
proto.org.couchers.admin.GetFriendRequestsRes.prototype.getReceivedList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.AdminFriendRequest>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.AdminFriendRequest, 2));
};


/**
 * @param {!Array<!proto.org.couchers.admin.AdminFriendRequest>} value
 * @return {!proto.org.couchers.admin.GetFriendRequestsRes} returns this
*/
proto.org.couchers.admin.GetFriendRequestsRes.prototype.setReceivedList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.org.couchers.admin.AdminFriendRequest=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AdminFriendRequest}
 */
proto.org.couchers.admin.GetFriendRequestsRes.prototype.addReceived = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.org.couchers.admin.AdminFriendRequest, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.GetFriendRequestsRes} returns this
 */
proto.org.couchers.admin.GetFriendRequestsRes.prototype.clearReceivedList = function() {
  return this.setReceivedList([]);
};





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.org.couchers.admin.GetUserBlocksReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetUserBlocksReq.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.org.couchers.admin.GetUserBlocksReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetUserBlocksReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetUserBlocksReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetUserBlocksReq}
 */
proto.org.couchers.admin.GetUserBlocksReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.GetUserBlocksReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.GetUserBlocksReq} returns this
 */
proto.org.couchers.admin.GetUserBlocksReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, 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.org.couchers.admin.AdminUserBlock.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AdminUserBlock.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.org.couchers.admin.AdminUserBlock} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminUserBlock.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: (f = msg.getUser()) && proto.org.couchers.admin.ChatUserInfo.toObject(includeInstance, f),
    timeBlocked: (f = msg.getTimeBlocked()) && 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.org.couchers.admin.AdminUserBlock}
 */
proto.org.couchers.admin.AdminUserBlock.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.AdminUserBlock;
  return proto.org.couchers.admin.AdminUserBlock.deserializeBinaryFromReader(msg, reader);
};


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


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


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


/**
 * optional ChatUserInfo user = 1;
 * @return {?proto.org.couchers.admin.ChatUserInfo}
 */
proto.org.couchers.admin.AdminUserBlock.prototype.getUser = function() {
  return /** @type{?proto.org.couchers.admin.ChatUserInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.admin.ChatUserInfo, 1));
};


/**
 * @param {?proto.org.couchers.admin.ChatUserInfo|undefined} value
 * @return {!proto.org.couchers.admin.AdminUserBlock} returns this
*/
proto.org.couchers.admin.AdminUserBlock.prototype.setUser = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminUserBlock} returns this
 */
proto.org.couchers.admin.AdminUserBlock.prototype.clearUser = function() {
  return this.setUser(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminUserBlock.prototype.hasUser = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional google.protobuf.Timestamp time_blocked = 2;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.AdminUserBlock.prototype.getTimeBlocked = 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.org.couchers.admin.AdminUserBlock} returns this
*/
proto.org.couchers.admin.AdminUserBlock.prototype.setTimeBlocked = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AdminUserBlock} returns this
 */
proto.org.couchers.admin.AdminUserBlock.prototype.clearTimeBlocked = function() {
  return this.setTimeBlocked(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AdminUserBlock.prototype.hasTimeBlocked = function() {
  return jspb.Message.getField(this, 2) != null;
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.GetUserBlocksRes.repeatedFields_ = [1,2];



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.org.couchers.admin.GetUserBlocksRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetUserBlocksRes.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.org.couchers.admin.GetUserBlocksRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetUserBlocksRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    blockedUsersList: jspb.Message.toObjectList(msg.getBlockedUsersList(),
    proto.org.couchers.admin.AdminUserBlock.toObject, includeInstance),
    blockingUsersList: jspb.Message.toObjectList(msg.getBlockingUsersList(),
    proto.org.couchers.admin.AdminUserBlock.toObject, includeInstance)
  };

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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.GetUserBlocksRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetUserBlocksRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getBlockedUsersList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.org.couchers.admin.AdminUserBlock.serializeBinaryToWriter
    );
  }
  f = message.getBlockingUsersList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.org.couchers.admin.AdminUserBlock.serializeBinaryToWriter
    );
  }
};


/**
 * repeated AdminUserBlock blocked_users = 1;
 * @return {!Array<!proto.org.couchers.admin.AdminUserBlock>}
 */
proto.org.couchers.admin.GetUserBlocksRes.prototype.getBlockedUsersList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.AdminUserBlock>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.AdminUserBlock, 1));
};


/**
 * @param {!Array<!proto.org.couchers.admin.AdminUserBlock>} value
 * @return {!proto.org.couchers.admin.GetUserBlocksRes} returns this
*/
proto.org.couchers.admin.GetUserBlocksRes.prototype.setBlockedUsersList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.org.couchers.admin.AdminUserBlock=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AdminUserBlock}
 */
proto.org.couchers.admin.GetUserBlocksRes.prototype.addBlockedUsers = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.couchers.admin.AdminUserBlock, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.GetUserBlocksRes} returns this
 */
proto.org.couchers.admin.GetUserBlocksRes.prototype.clearBlockedUsersList = function() {
  return this.setBlockedUsersList([]);
};


/**
 * repeated AdminUserBlock blocking_users = 2;
 * @return {!Array<!proto.org.couchers.admin.AdminUserBlock>}
 */
proto.org.couchers.admin.GetUserBlocksRes.prototype.getBlockingUsersList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.AdminUserBlock>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.AdminUserBlock, 2));
};


/**
 * @param {!Array<!proto.org.couchers.admin.AdminUserBlock>} value
 * @return {!proto.org.couchers.admin.GetUserBlocksRes} returns this
*/
proto.org.couchers.admin.GetUserBlocksRes.prototype.setBlockingUsersList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.org.couchers.admin.AdminUserBlock=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AdminUserBlock}
 */
proto.org.couchers.admin.GetUserBlocksRes.prototype.addBlockingUsers = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.org.couchers.admin.AdminUserBlock, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.GetUserBlocksRes} returns this
 */
proto.org.couchers.admin.GetUserBlocksRes.prototype.clearBlockingUsersList = function() {
  return this.setBlockingUsersList([]);
};





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.org.couchers.admin.GetNonvisibleUserAccessLogReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetNonvisibleUserAccessLogReq.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.org.couchers.admin.GetNonvisibleUserAccessLogReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetNonvisibleUserAccessLogReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetNonvisibleUserAccessLogReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetNonvisibleUserAccessLogReq}
 */
proto.org.couchers.admin.GetNonvisibleUserAccessLogReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.GetNonvisibleUserAccessLogReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.GetNonvisibleUserAccessLogReq} returns this
 */
proto.org.couchers.admin.GetNonvisibleUserAccessLogReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, 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.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.NonvisibleUserAccessLogEntry.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.org.couchers.admin.NonvisibleUserAccessLogEntry} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.toObject = function(includeInstance, msg) {
  var f, obj = {
    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    accessType: jspb.Message.getFieldWithDefault(msg, 2, 0),
    targetState: jspb.Message.getFieldWithDefault(msg, 3, 0),
    targetUserId: jspb.Message.getFieldWithDefault(msg, 4, 0),
    actorUserId: (f = msg.getActorUserId()) && google_protobuf_wrappers_pb.Int64Value.toObject(includeInstance, f),
    actorUsername: jspb.Message.getFieldWithDefault(msg, 6, ""),
    ipAddress: jspb.Message.getFieldWithDefault(msg, 7, ""),
    userAgent: jspb.Message.getFieldWithDefault(msg, 8, ""),
    sofa: jspb.Message.getFieldWithDefault(msg, 9, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry}
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.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.setTime(value);
      break;
    case 2:
      var value = /** @type {!proto.org.couchers.admin.NonvisibleUserAccessType} */ (reader.readEnum());
      msg.setAccessType(value);
      break;
    case 3:
      var value = /** @type {!proto.org.couchers.admin.NonvisibleUserState} */ (reader.readEnum());
      msg.setTargetState(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setTargetUserId(value);
      break;
    case 5:
      var value = new google_protobuf_wrappers_pb.Int64Value;
      reader.readMessage(value,google_protobuf_wrappers_pb.Int64Value.deserializeBinaryFromReader);
      msg.setActorUserId(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setActorUsername(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setIpAddress(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setUserAgent(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setSofa(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getTime();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getAccessType();
  if (f !== 0.0) {
    writer.writeEnum(
      2,
      f
    );
  }
  f = message.getTargetState();
  if (f !== 0.0) {
    writer.writeEnum(
      3,
      f
    );
  }
  f = message.getTargetUserId();
  if (f !== 0) {
    writer.writeInt64(
      4,
      f
    );
  }
  f = message.getActorUserId();
  if (f != null) {
    writer.writeMessage(
      5,
      f,
      google_protobuf_wrappers_pb.Int64Value.serializeBinaryToWriter
    );
  }
  f = message.getActorUsername();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getIpAddress();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getUserAgent();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getSofa();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
};


/**
 * optional google.protobuf.Timestamp time = 1;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.getTime = 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.org.couchers.admin.NonvisibleUserAccessLogEntry} returns this
*/
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.setTime = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry} returns this
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.clearTime = function() {
  return this.setTime(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.hasTime = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional NonvisibleUserAccessType access_type = 2;
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessType}
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.getAccessType = function() {
  return /** @type {!proto.org.couchers.admin.NonvisibleUserAccessType} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {!proto.org.couchers.admin.NonvisibleUserAccessType} value
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry} returns this
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.setAccessType = function(value) {
  return jspb.Message.setProto3EnumField(this, 2, value);
};


/**
 * optional NonvisibleUserState target_state = 3;
 * @return {!proto.org.couchers.admin.NonvisibleUserState}
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.getTargetState = function() {
  return /** @type {!proto.org.couchers.admin.NonvisibleUserState} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {!proto.org.couchers.admin.NonvisibleUserState} value
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry} returns this
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.setTargetState = function(value) {
  return jspb.Message.setProto3EnumField(this, 3, value);
};


/**
 * optional int64 target_user_id = 4;
 * @return {number}
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.getTargetUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry} returns this
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.setTargetUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional google.protobuf.Int64Value actor_user_id = 5;
 * @return {?proto.google.protobuf.Int64Value}
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.getActorUserId = function() {
  return /** @type{?proto.google.protobuf.Int64Value} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.Int64Value, 5));
};


/**
 * @param {?proto.google.protobuf.Int64Value|undefined} value
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry} returns this
*/
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.setActorUserId = function(value) {
  return jspb.Message.setWrapperField(this, 5, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry} returns this
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.clearActorUserId = function() {
  return this.setActorUserId(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.hasActorUserId = function() {
  return jspb.Message.getField(this, 5) != null;
};


/**
 * optional string actor_username = 6;
 * @return {string}
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.getActorUsername = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry} returns this
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.setActorUsername = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string ip_address = 7;
 * @return {string}
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.getIpAddress = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry} returns this
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.setIpAddress = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional string user_agent = 8;
 * @return {string}
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.getUserAgent = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry} returns this
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.setUserAgent = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional string sofa = 9;
 * @return {string}
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.getSofa = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry} returns this
 */
proto.org.couchers.admin.NonvisibleUserAccessLogEntry.prototype.setSofa = function(value) {
  return jspb.Message.setProto3StringField(this, 9, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.GetNonvisibleUserAccessLogRes.repeatedFields_ = [1];



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.org.couchers.admin.GetNonvisibleUserAccessLogRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.GetNonvisibleUserAccessLogRes.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.org.couchers.admin.GetNonvisibleUserAccessLogRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetNonvisibleUserAccessLogRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    entriesList: jspb.Message.toObjectList(msg.getEntriesList(),
    proto.org.couchers.admin.NonvisibleUserAccessLogEntry.toObject, includeInstance)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.GetNonvisibleUserAccessLogRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.GetNonvisibleUserAccessLogRes}
 */
proto.org.couchers.admin.GetNonvisibleUserAccessLogRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.org.couchers.admin.NonvisibleUserAccessLogEntry;
      reader.readMessage(value,proto.org.couchers.admin.NonvisibleUserAccessLogEntry.deserializeBinaryFromReader);
      msg.addEntries(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.GetNonvisibleUserAccessLogRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.GetNonvisibleUserAccessLogRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getEntriesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.org.couchers.admin.NonvisibleUserAccessLogEntry.serializeBinaryToWriter
    );
  }
};


/**
 * repeated NonvisibleUserAccessLogEntry entries = 1;
 * @return {!Array<!proto.org.couchers.admin.NonvisibleUserAccessLogEntry>}
 */
proto.org.couchers.admin.GetNonvisibleUserAccessLogRes.prototype.getEntriesList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.NonvisibleUserAccessLogEntry>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.NonvisibleUserAccessLogEntry, 1));
};


/**
 * @param {!Array<!proto.org.couchers.admin.NonvisibleUserAccessLogEntry>} value
 * @return {!proto.org.couchers.admin.GetNonvisibleUserAccessLogRes} returns this
*/
proto.org.couchers.admin.GetNonvisibleUserAccessLogRes.prototype.setEntriesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.NonvisibleUserAccessLogEntry}
 */
proto.org.couchers.admin.GetNonvisibleUserAccessLogRes.prototype.addEntries = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.couchers.admin.NonvisibleUserAccessLogEntry, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.GetNonvisibleUserAccessLogRes} returns this
 */
proto.org.couchers.admin.GetNonvisibleUserAccessLogRes.prototype.clearEntriesList = function() {
  return this.setEntriesList([]);
};





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.org.couchers.admin.EditDiscussionReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.EditDiscussionReq.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.org.couchers.admin.EditDiscussionReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.EditDiscussionReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    discussionId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newTitle: jspb.Message.getFieldWithDefault(msg, 2, ""),
    newContent: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.EditDiscussionReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.EditDiscussionReq}
 */
proto.org.couchers.admin.EditDiscussionReq.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.setDiscussionId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setNewTitle(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setNewContent(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.EditDiscussionReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.EditDiscussionReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getDiscussionId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getNewTitle();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getNewContent();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional int64 discussion_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.EditDiscussionReq.prototype.getDiscussionId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.EditDiscussionReq} returns this
 */
proto.org.couchers.admin.EditDiscussionReq.prototype.setDiscussionId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string new_title = 2;
 * @return {string}
 */
proto.org.couchers.admin.EditDiscussionReq.prototype.getNewTitle = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.EditDiscussionReq} returns this
 */
proto.org.couchers.admin.EditDiscussionReq.prototype.setNewTitle = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string new_content = 3;
 * @return {string}
 */
proto.org.couchers.admin.EditDiscussionReq.prototype.getNewContent = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.EditDiscussionReq} returns this
 */
proto.org.couchers.admin.EditDiscussionReq.prototype.setNewContent = function(value) {
  return jspb.Message.setProto3StringField(this, 3, 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.org.couchers.admin.AdminDeleteDiscussionReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AdminDeleteDiscussionReq.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.org.couchers.admin.AdminDeleteDiscussionReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AdminDeleteDiscussionReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    discussionId: jspb.Message.getFieldWithDefault(msg, 1, 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.org.couchers.admin.AdminDeleteDiscussionReq}
 */
proto.org.couchers.admin.AdminDeleteDiscussionReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.AdminDeleteDiscussionReq;
  return proto.org.couchers.admin.AdminDeleteDiscussionReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AdminDeleteDiscussionReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AdminDeleteDiscussionReq}
 */
proto.org.couchers.admin.AdminDeleteDiscussionReq.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.setDiscussionId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional int64 discussion_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.AdminDeleteDiscussionReq.prototype.getDiscussionId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AdminDeleteDiscussionReq} returns this
 */
proto.org.couchers.admin.AdminDeleteDiscussionReq.prototype.setDiscussionId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, 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.org.couchers.admin.EditReplyReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.EditReplyReq.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.org.couchers.admin.EditReplyReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.EditReplyReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    replyId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    newContent: 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.org.couchers.admin.EditReplyReq}
 */
proto.org.couchers.admin.EditReplyReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.EditReplyReq;
  return proto.org.couchers.admin.EditReplyReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.EditReplyReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.EditReplyReq}
 */
proto.org.couchers.admin.EditReplyReq.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.setReplyId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setNewContent(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional int64 reply_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.EditReplyReq.prototype.getReplyId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.EditReplyReq} returns this
 */
proto.org.couchers.admin.EditReplyReq.prototype.setReplyId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string new_content = 2;
 * @return {string}
 */
proto.org.couchers.admin.EditReplyReq.prototype.getNewContent = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.EditReplyReq} returns this
 */
proto.org.couchers.admin.EditReplyReq.prototype.setNewContent = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.AddUsersToModerationUserListReq.repeatedFields_ = [1];



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.org.couchers.admin.AddUsersToModerationUserListReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AddUsersToModerationUserListReq.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.org.couchers.admin.AddUsersToModerationUserListReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AddUsersToModerationUserListReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    usersList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f,
    moderationListId: 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.org.couchers.admin.AddUsersToModerationUserListReq}
 */
proto.org.couchers.admin.AddUsersToModerationUserListReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.AddUsersToModerationUserListReq;
  return proto.org.couchers.admin.AddUsersToModerationUserListReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AddUsersToModerationUserListReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AddUsersToModerationUserListReq}
 */
proto.org.couchers.admin.AddUsersToModerationUserListReq.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.addUsers(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setModerationListId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.AddUsersToModerationUserListReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AddUsersToModerationUserListReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUsersList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      1,
      f
    );
  }
  f = message.getModerationListId();
  if (f !== 0) {
    writer.writeInt64(
      2,
      f
    );
  }
};


/**
 * repeated string users = 1;
 * @return {!Array<string>}
 */
proto.org.couchers.admin.AddUsersToModerationUserListReq.prototype.getUsersList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 1));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.org.couchers.admin.AddUsersToModerationUserListReq} returns this
 */
proto.org.couchers.admin.AddUsersToModerationUserListReq.prototype.setUsersList = function(value) {
  return jspb.Message.setField(this, 1, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AddUsersToModerationUserListReq} returns this
 */
proto.org.couchers.admin.AddUsersToModerationUserListReq.prototype.addUsers = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.AddUsersToModerationUserListReq} returns this
 */
proto.org.couchers.admin.AddUsersToModerationUserListReq.prototype.clearUsersList = function() {
  return this.setUsersList([]);
};


/**
 * optional int64 moderation_list_id = 2;
 * @return {number}
 */
proto.org.couchers.admin.AddUsersToModerationUserListReq.prototype.getModerationListId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AddUsersToModerationUserListReq} returns this
 */
proto.org.couchers.admin.AddUsersToModerationUserListReq.prototype.setModerationListId = 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.org.couchers.admin.ListModerationUserListsReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ListModerationUserListsReq.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.org.couchers.admin.ListModerationUserListsReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListModerationUserListsReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ListModerationUserListsReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ListModerationUserListsReq}
 */
proto.org.couchers.admin.ListModerationUserListsReq.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.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.ListModerationUserListsReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ListModerationUserListsReq} returns this
 */
proto.org.couchers.admin.ListModerationUserListsReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.ModerationList.repeatedFields_ = [3];



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.org.couchers.admin.ModerationList.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ModerationList.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.org.couchers.admin.ModerationList} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ModerationList.toObject = function(includeInstance, msg) {
  var f, obj = {
    moderationListId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    membersList: jspb.Message.toObjectList(msg.getMembersList(),
    proto.org.couchers.admin.UserDetails.toObject, includeInstance)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ModerationList} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ModerationList}
 */
proto.org.couchers.admin.ModerationList.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.setModerationListId(value);
      break;
    case 3:
      var value = new proto.org.couchers.admin.UserDetails;
      reader.readMessage(value,proto.org.couchers.admin.UserDetails.deserializeBinaryFromReader);
      msg.addMembers(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ModerationList} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ModerationList.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getModerationListId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getMembersList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      3,
      f,
      proto.org.couchers.admin.UserDetails.serializeBinaryToWriter
    );
  }
};


/**
 * optional int64 moderation_list_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.ModerationList.prototype.getModerationListId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.ModerationList} returns this
 */
proto.org.couchers.admin.ModerationList.prototype.setModerationListId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * repeated UserDetails members = 3;
 * @return {!Array<!proto.org.couchers.admin.UserDetails>}
 */
proto.org.couchers.admin.ModerationList.prototype.getMembersList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.UserDetails>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.UserDetails, 3));
};


/**
 * @param {!Array<!proto.org.couchers.admin.UserDetails>} value
 * @return {!proto.org.couchers.admin.ModerationList} returns this
*/
proto.org.couchers.admin.ModerationList.prototype.setMembersList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 3, value);
};


/**
 * @param {!proto.org.couchers.admin.UserDetails=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.UserDetails}
 */
proto.org.couchers.admin.ModerationList.prototype.addMembers = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.org.couchers.admin.UserDetails, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.ModerationList} returns this
 */
proto.org.couchers.admin.ModerationList.prototype.clearMembersList = function() {
  return this.setMembersList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.ListModerationUserListsRes.repeatedFields_ = [1];



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.org.couchers.admin.ListModerationUserListsRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ListModerationUserListsRes.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.org.couchers.admin.ListModerationUserListsRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListModerationUserListsRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    moderationListsList: jspb.Message.toObjectList(msg.getModerationListsList(),
    proto.org.couchers.admin.ModerationList.toObject, includeInstance)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ListModerationUserListsRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ListModerationUserListsRes}
 */
proto.org.couchers.admin.ListModerationUserListsRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.org.couchers.admin.ModerationList;
      reader.readMessage(value,proto.org.couchers.admin.ModerationList.deserializeBinaryFromReader);
      msg.addModerationLists(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ListModerationUserListsRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListModerationUserListsRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getModerationListsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.org.couchers.admin.ModerationList.serializeBinaryToWriter
    );
  }
};


/**
 * repeated ModerationList moderation_lists = 1;
 * @return {!Array<!proto.org.couchers.admin.ModerationList>}
 */
proto.org.couchers.admin.ListModerationUserListsRes.prototype.getModerationListsList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.ModerationList>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.ModerationList, 1));
};


/**
 * @param {!Array<!proto.org.couchers.admin.ModerationList>} value
 * @return {!proto.org.couchers.admin.ListModerationUserListsRes} returns this
*/
proto.org.couchers.admin.ListModerationUserListsRes.prototype.setModerationListsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.org.couchers.admin.ModerationList=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.ModerationList}
 */
proto.org.couchers.admin.ListModerationUserListsRes.prototype.addModerationLists = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.couchers.admin.ModerationList, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.ListModerationUserListsRes} returns this
 */
proto.org.couchers.admin.ListModerationUserListsRes.prototype.clearModerationListsList = function() {
  return this.setModerationListsList([]);
};





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.org.couchers.admin.AddUsersToModerationUserListRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AddUsersToModerationUserListRes.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.org.couchers.admin.AddUsersToModerationUserListRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AddUsersToModerationUserListRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    moderationListId: jspb.Message.getFieldWithDefault(msg, 1, 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.org.couchers.admin.AddUsersToModerationUserListRes}
 */
proto.org.couchers.admin.AddUsersToModerationUserListRes.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.AddUsersToModerationUserListRes;
  return proto.org.couchers.admin.AddUsersToModerationUserListRes.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AddUsersToModerationUserListRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AddUsersToModerationUserListRes}
 */
proto.org.couchers.admin.AddUsersToModerationUserListRes.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.setModerationListId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional int64 moderation_list_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.AddUsersToModerationUserListRes.prototype.getModerationListId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AddUsersToModerationUserListRes} returns this
 */
proto.org.couchers.admin.AddUsersToModerationUserListRes.prototype.setModerationListId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, 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.org.couchers.admin.RemoveUserFromModerationUserListReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.RemoveUserFromModerationUserListReq.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.org.couchers.admin.RemoveUserFromModerationUserListReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.RemoveUserFromModerationUserListReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    moderationListId: 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.org.couchers.admin.RemoveUserFromModerationUserListReq}
 */
proto.org.couchers.admin.RemoveUserFromModerationUserListReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.RemoveUserFromModerationUserListReq;
  return proto.org.couchers.admin.RemoveUserFromModerationUserListReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.RemoveUserFromModerationUserListReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.RemoveUserFromModerationUserListReq}
 */
proto.org.couchers.admin.RemoveUserFromModerationUserListReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setModerationListId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.RemoveUserFromModerationUserListReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.RemoveUserFromModerationUserListReq} returns this
 */
proto.org.couchers.admin.RemoveUserFromModerationUserListReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional int64 moderation_list_id = 2;
 * @return {number}
 */
proto.org.couchers.admin.RemoveUserFromModerationUserListReq.prototype.getModerationListId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.RemoveUserFromModerationUserListReq} returns this
 */
proto.org.couchers.admin.RemoveUserFromModerationUserListReq.prototype.setModerationListId = 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.org.couchers.admin.CreateAccountDeletionLinkReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.CreateAccountDeletionLinkReq.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.org.couchers.admin.CreateAccountDeletionLinkReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.CreateAccountDeletionLinkReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    expiryDays: 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.org.couchers.admin.CreateAccountDeletionLinkReq}
 */
proto.org.couchers.admin.CreateAccountDeletionLinkReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.CreateAccountDeletionLinkReq;
  return proto.org.couchers.admin.CreateAccountDeletionLinkReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.CreateAccountDeletionLinkReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.CreateAccountDeletionLinkReq}
 */
proto.org.couchers.admin.CreateAccountDeletionLinkReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setExpiryDays(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.CreateAccountDeletionLinkReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.CreateAccountDeletionLinkReq} returns this
 */
proto.org.couchers.admin.CreateAccountDeletionLinkReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional int64 expiry_days = 2;
 * @return {number}
 */
proto.org.couchers.admin.CreateAccountDeletionLinkReq.prototype.getExpiryDays = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.CreateAccountDeletionLinkReq} returns this
 */
proto.org.couchers.admin.CreateAccountDeletionLinkReq.prototype.setExpiryDays = 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.org.couchers.admin.CreateAccountDeletionLinkRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.CreateAccountDeletionLinkRes.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.org.couchers.admin.CreateAccountDeletionLinkRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.CreateAccountDeletionLinkRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    accountDeletionConfirmUrl: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.CreateAccountDeletionLinkRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.CreateAccountDeletionLinkRes}
 */
proto.org.couchers.admin.CreateAccountDeletionLinkRes.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.setAccountDeletionConfirmUrl(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string account_deletion_confirm_url = 1;
 * @return {string}
 */
proto.org.couchers.admin.CreateAccountDeletionLinkRes.prototype.getAccountDeletionConfirmUrl = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.CreateAccountDeletionLinkRes} returns this
 */
proto.org.couchers.admin.CreateAccountDeletionLinkRes.prototype.setAccountDeletionConfirmUrl = function(value) {
  return jspb.Message.setProto3StringField(this, 1, 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.org.couchers.admin.AccessStatsReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AccessStatsReq.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.org.couchers.admin.AccessStatsReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AccessStatsReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    startTime: (f = msg.getStartTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    endTime: (f = msg.getEndTime()) && 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.org.couchers.admin.AccessStatsReq}
 */
proto.org.couchers.admin.AccessStatsReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.AccessStatsReq;
  return proto.org.couchers.admin.AccessStatsReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AccessStatsReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AccessStatsReq}
 */
proto.org.couchers.admin.AccessStatsReq.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.setUser(value);
      break;
    case 2:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setStartTime(value);
      break;
    case 3:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setEndTime(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.AccessStatsReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AccessStatsReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUser();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getStartTime();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getEndTime();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
};


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.AccessStatsReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AccessStatsReq} returns this
 */
proto.org.couchers.admin.AccessStatsReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional google.protobuf.Timestamp start_time = 2;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.AccessStatsReq.prototype.getStartTime = 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.org.couchers.admin.AccessStatsReq} returns this
*/
proto.org.couchers.admin.AccessStatsReq.prototype.setStartTime = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AccessStatsReq} returns this
 */
proto.org.couchers.admin.AccessStatsReq.prototype.clearStartTime = function() {
  return this.setStartTime(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AccessStatsReq.prototype.hasStartTime = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional google.protobuf.Timestamp end_time = 3;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.AccessStatsReq.prototype.getEndTime = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.AccessStatsReq} returns this
*/
proto.org.couchers.admin.AccessStatsReq.prototype.setEndTime = function(value) {
  return jspb.Message.setWrapperField(this, 3, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AccessStatsReq} returns this
 */
proto.org.couchers.admin.AccessStatsReq.prototype.clearEndTime = function() {
  return this.setEndTime(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AccessStatsReq.prototype.hasEndTime = function() {
  return jspb.Message.getField(this, 3) != 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.org.couchers.admin.AccessStat.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AccessStat.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.org.couchers.admin.AccessStat} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AccessStat.toObject = function(includeInstance, msg) {
  var f, obj = {
    ipAddress: jspb.Message.getFieldWithDefault(msg, 1, ""),
    asn: jspb.Message.getFieldWithDefault(msg, 2, ""),
    asorg: jspb.Message.getFieldWithDefault(msg, 3, ""),
    asnetwork: jspb.Message.getFieldWithDefault(msg, 4, ""),
    userAgent: jspb.Message.getFieldWithDefault(msg, 5, ""),
    operatingSystem: jspb.Message.getFieldWithDefault(msg, 6, ""),
    browser: jspb.Message.getFieldWithDefault(msg, 7, ""),
    device: jspb.Message.getFieldWithDefault(msg, 8, ""),
    approximateLocation: jspb.Message.getFieldWithDefault(msg, 9, ""),
    apiCallCount: jspb.Message.getFieldWithDefault(msg, 10, 0),
    periodsCount: jspb.Message.getFieldWithDefault(msg, 11, 0),
    firstSeen: (f = msg.getFirstSeen()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    lastSeen: (f = msg.getLastSeen()) && 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.org.couchers.admin.AccessStat}
 */
proto.org.couchers.admin.AccessStat.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.AccessStat;
  return proto.org.couchers.admin.AccessStat.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AccessStat} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AccessStat}
 */
proto.org.couchers.admin.AccessStat.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.setIpAddress(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setAsn(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setAsorg(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setAsnetwork(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setUserAgent(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setOperatingSystem(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setBrowser(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setDevice(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setApproximateLocation(value);
      break;
    case 10:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setApiCallCount(value);
      break;
    case 11:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setPeriodsCount(value);
      break;
    case 12:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setFirstSeen(value);
      break;
    case 13:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setLastSeen(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.AccessStat} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AccessStat.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getIpAddress();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getAsn();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getAsorg();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getAsnetwork();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getUserAgent();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getOperatingSystem();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getBrowser();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getDevice();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getApproximateLocation();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
  f = message.getApiCallCount();
  if (f !== 0) {
    writer.writeUint64(
      10,
      f
    );
  }
  f = message.getPeriodsCount();
  if (f !== 0) {
    writer.writeUint64(
      11,
      f
    );
  }
  f = message.getFirstSeen();
  if (f != null) {
    writer.writeMessage(
      12,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getLastSeen();
  if (f != null) {
    writer.writeMessage(
      13,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
};


/**
 * optional string ip_address = 1;
 * @return {string}
 */
proto.org.couchers.admin.AccessStat.prototype.getIpAddress = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.setIpAddress = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string asn = 2;
 * @return {string}
 */
proto.org.couchers.admin.AccessStat.prototype.getAsn = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.setAsn = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string asorg = 3;
 * @return {string}
 */
proto.org.couchers.admin.AccessStat.prototype.getAsorg = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.setAsorg = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string asnetwork = 4;
 * @return {string}
 */
proto.org.couchers.admin.AccessStat.prototype.getAsnetwork = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.setAsnetwork = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string user_agent = 5;
 * @return {string}
 */
proto.org.couchers.admin.AccessStat.prototype.getUserAgent = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.setUserAgent = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string operating_system = 6;
 * @return {string}
 */
proto.org.couchers.admin.AccessStat.prototype.getOperatingSystem = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.setOperatingSystem = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string browser = 7;
 * @return {string}
 */
proto.org.couchers.admin.AccessStat.prototype.getBrowser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.setBrowser = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional string device = 8;
 * @return {string}
 */
proto.org.couchers.admin.AccessStat.prototype.getDevice = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.setDevice = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional string approximate_location = 9;
 * @return {string}
 */
proto.org.couchers.admin.AccessStat.prototype.getApproximateLocation = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.setApproximateLocation = function(value) {
  return jspb.Message.setProto3StringField(this, 9, value);
};


/**
 * optional uint64 api_call_count = 10;
 * @return {number}
 */
proto.org.couchers.admin.AccessStat.prototype.getApiCallCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.setApiCallCount = function(value) {
  return jspb.Message.setProto3IntField(this, 10, value);
};


/**
 * optional uint64 periods_count = 11;
 * @return {number}
 */
proto.org.couchers.admin.AccessStat.prototype.getPeriodsCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.setPeriodsCount = function(value) {
  return jspb.Message.setProto3IntField(this, 11, value);
};


/**
 * optional google.protobuf.Timestamp first_seen = 12;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.AccessStat.prototype.getFirstSeen = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 12));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
*/
proto.org.couchers.admin.AccessStat.prototype.setFirstSeen = function(value) {
  return jspb.Message.setWrapperField(this, 12, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.clearFirstSeen = function() {
  return this.setFirstSeen(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AccessStat.prototype.hasFirstSeen = function() {
  return jspb.Message.getField(this, 12) != null;
};


/**
 * optional google.protobuf.Timestamp last_seen = 13;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.AccessStat.prototype.getLastSeen = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 13));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.AccessStat} returns this
*/
proto.org.couchers.admin.AccessStat.prototype.setLastSeen = function(value) {
  return jspb.Message.setWrapperField(this, 13, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.AccessStat} returns this
 */
proto.org.couchers.admin.AccessStat.prototype.clearLastSeen = function() {
  return this.setLastSeen(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.AccessStat.prototype.hasLastSeen = function() {
  return jspb.Message.getField(this, 13) != null;
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.AccessStatsRes.repeatedFields_ = [1];



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.org.couchers.admin.AccessStatsRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AccessStatsRes.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.org.couchers.admin.AccessStatsRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AccessStatsRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    statsList: jspb.Message.toObjectList(msg.getStatsList(),
    proto.org.couchers.admin.AccessStat.toObject, includeInstance)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AccessStatsRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AccessStatsRes}
 */
proto.org.couchers.admin.AccessStatsRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.org.couchers.admin.AccessStat;
      reader.readMessage(value,proto.org.couchers.admin.AccessStat.deserializeBinaryFromReader);
      msg.addStats(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.AccessStatsRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AccessStatsRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getStatsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.org.couchers.admin.AccessStat.serializeBinaryToWriter
    );
  }
};


/**
 * repeated AccessStat stats = 1;
 * @return {!Array<!proto.org.couchers.admin.AccessStat>}
 */
proto.org.couchers.admin.AccessStatsRes.prototype.getStatsList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.AccessStat>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.AccessStat, 1));
};


/**
 * @param {!Array<!proto.org.couchers.admin.AccessStat>} value
 * @return {!proto.org.couchers.admin.AccessStatsRes} returns this
*/
proto.org.couchers.admin.AccessStatsRes.prototype.setStatsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.org.couchers.admin.AccessStat=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AccessStat}
 */
proto.org.couchers.admin.AccessStatsRes.prototype.addStats = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.couchers.admin.AccessStat, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.AccessStatsRes} returns this
 */
proto.org.couchers.admin.AccessStatsRes.prototype.clearStatsList = function() {
  return this.setStatsList([]);
};





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.org.couchers.admin.SetLastDonatedReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.SetLastDonatedReq.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.org.couchers.admin.SetLastDonatedReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.SetLastDonatedReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    lastDonated: (f = msg.getLastDonated()) && 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.org.couchers.admin.SetLastDonatedReq}
 */
proto.org.couchers.admin.SetLastDonatedReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.SetLastDonatedReq;
  return proto.org.couchers.admin.SetLastDonatedReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.SetLastDonatedReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.SetLastDonatedReq}
 */
proto.org.couchers.admin.SetLastDonatedReq.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.setUser(value);
      break;
    case 2:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setLastDonated(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.SetLastDonatedReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.SetLastDonatedReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUser();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getLastDonated();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
};


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.SetLastDonatedReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SetLastDonatedReq} returns this
 */
proto.org.couchers.admin.SetLastDonatedReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional google.protobuf.Timestamp last_donated = 2;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.SetLastDonatedReq.prototype.getLastDonated = 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.org.couchers.admin.SetLastDonatedReq} returns this
*/
proto.org.couchers.admin.SetLastDonatedReq.prototype.setLastDonated = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.SetLastDonatedReq} returns this
 */
proto.org.couchers.admin.SetLastDonatedReq.prototype.clearLastDonated = function() {
  return this.setLastDonated(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.SetLastDonatedReq.prototype.hasLastDonated = 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.org.couchers.admin.CreateAdminTagReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.CreateAdminTagReq.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.org.couchers.admin.CreateAdminTagReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.CreateAdminTagReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    tag: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.CreateAdminTagReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.CreateAdminTagReq}
 */
proto.org.couchers.admin.CreateAdminTagReq.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.setTag(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string tag = 1;
 * @return {string}
 */
proto.org.couchers.admin.CreateAdminTagReq.prototype.getTag = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.CreateAdminTagReq} returns this
 */
proto.org.couchers.admin.CreateAdminTagReq.prototype.setTag = function(value) {
  return jspb.Message.setProto3StringField(this, 1, 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.org.couchers.admin.ListAdminTagsReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ListAdminTagsReq.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.org.couchers.admin.ListAdminTagsReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListAdminTagsReq.toObject = function(includeInstance, msg) {
  var f, obj = {

  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ListAdminTagsReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ListAdminTagsReq}
 */
proto.org.couchers.admin.ListAdminTagsReq.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ListAdminTagsReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListAdminTagsReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.ListAdminTagsRes.repeatedFields_ = [1];



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.org.couchers.admin.ListAdminTagsRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ListAdminTagsRes.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.org.couchers.admin.ListAdminTagsRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListAdminTagsRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    tagsList: jspb.Message.toObjectList(msg.getTagsList(),
    proto.org.couchers.admin.AdminTagInfo.toObject, includeInstance)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ListAdminTagsRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ListAdminTagsRes}
 */
proto.org.couchers.admin.ListAdminTagsRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.org.couchers.admin.AdminTagInfo;
      reader.readMessage(value,proto.org.couchers.admin.AdminTagInfo.deserializeBinaryFromReader);
      msg.addTags(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ListAdminTagsRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListAdminTagsRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getTagsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.org.couchers.admin.AdminTagInfo.serializeBinaryToWriter
    );
  }
};


/**
 * repeated AdminTagInfo tags = 1;
 * @return {!Array<!proto.org.couchers.admin.AdminTagInfo>}
 */
proto.org.couchers.admin.ListAdminTagsRes.prototype.getTagsList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.AdminTagInfo>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.AdminTagInfo, 1));
};


/**
 * @param {!Array<!proto.org.couchers.admin.AdminTagInfo>} value
 * @return {!proto.org.couchers.admin.ListAdminTagsRes} returns this
*/
proto.org.couchers.admin.ListAdminTagsRes.prototype.setTagsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.org.couchers.admin.AdminTagInfo=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AdminTagInfo}
 */
proto.org.couchers.admin.ListAdminTagsRes.prototype.addTags = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.couchers.admin.AdminTagInfo, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.ListAdminTagsRes} returns this
 */
proto.org.couchers.admin.ListAdminTagsRes.prototype.clearTagsList = function() {
  return this.setTagsList([]);
};





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.org.couchers.admin.AddAdminTagToUserReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.AddAdminTagToUserReq.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.org.couchers.admin.AddAdminTagToUserReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.AddAdminTagToUserReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    tag: 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.org.couchers.admin.AddAdminTagToUserReq}
 */
proto.org.couchers.admin.AddAdminTagToUserReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.AddAdminTagToUserReq;
  return proto.org.couchers.admin.AddAdminTagToUserReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.AddAdminTagToUserReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.AddAdminTagToUserReq}
 */
proto.org.couchers.admin.AddAdminTagToUserReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setTag(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.AddAdminTagToUserReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AddAdminTagToUserReq} returns this
 */
proto.org.couchers.admin.AddAdminTagToUserReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string tag = 2;
 * @return {string}
 */
proto.org.couchers.admin.AddAdminTagToUserReq.prototype.getTag = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.AddAdminTagToUserReq} returns this
 */
proto.org.couchers.admin.AddAdminTagToUserReq.prototype.setTag = 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.org.couchers.admin.RemoveAdminTagFromUserReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.RemoveAdminTagFromUserReq.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.org.couchers.admin.RemoveAdminTagFromUserReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.RemoveAdminTagFromUserReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    tag: 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.org.couchers.admin.RemoveAdminTagFromUserReq}
 */
proto.org.couchers.admin.RemoveAdminTagFromUserReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.RemoveAdminTagFromUserReq;
  return proto.org.couchers.admin.RemoveAdminTagFromUserReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.RemoveAdminTagFromUserReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.RemoveAdminTagFromUserReq}
 */
proto.org.couchers.admin.RemoveAdminTagFromUserReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setTag(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.RemoveAdminTagFromUserReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.RemoveAdminTagFromUserReq} returns this
 */
proto.org.couchers.admin.RemoveAdminTagFromUserReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string tag = 2;
 * @return {string}
 */
proto.org.couchers.admin.RemoveAdminTagFromUserReq.prototype.getTag = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.RemoveAdminTagFromUserReq} returns this
 */
proto.org.couchers.admin.RemoveAdminTagFromUserReq.prototype.setTag = 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.org.couchers.admin.SetModScoreReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.SetModScoreReq.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.org.couchers.admin.SetModScoreReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.SetModScoreReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    modScore: 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.org.couchers.admin.SetModScoreReq}
 */
proto.org.couchers.admin.SetModScoreReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.SetModScoreReq;
  return proto.org.couchers.admin.SetModScoreReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.SetModScoreReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.SetModScoreReq}
 */
proto.org.couchers.admin.SetModScoreReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setModScore(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.SetModScoreReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.SetModScoreReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUser();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getModScore();
  if (f !== 0.0) {
    writer.writeDouble(
      2,
      f
    );
  }
};


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.SetModScoreReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.SetModScoreReq} returns this
 */
proto.org.couchers.admin.SetModScoreReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional double mod_score = 2;
 * @return {number}
 */
proto.org.couchers.admin.SetModScoreReq.prototype.getModScore = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.SetModScoreReq} returns this
 */
proto.org.couchers.admin.SetModScoreReq.prototype.setModScore = 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.org.couchers.admin.ListAdminActionsReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ListAdminActionsReq.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.org.couchers.admin.ListAdminActionsReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListAdminActionsReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    adminUserId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    targetUserId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    pageSize: jspb.Message.getFieldWithDefault(msg, 3, 0),
    pageToken: jspb.Message.getFieldWithDefault(msg, 4, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ListAdminActionsReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ListAdminActionsReq}
 */
proto.org.couchers.admin.ListAdminActionsReq.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.setAdminUserId(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setTargetUserId(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setPageSize(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ListAdminActionsReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListAdminActionsReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getAdminUserId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getTargetUserId();
  if (f !== 0) {
    writer.writeInt64(
      2,
      f
    );
  }
  f = message.getPageSize();
  if (f !== 0) {
    writer.writeUint32(
      3,
      f
    );
  }
  f = message.getPageToken();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
};


/**
 * optional int64 admin_user_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.ListAdminActionsReq.prototype.getAdminUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.ListAdminActionsReq} returns this
 */
proto.org.couchers.admin.ListAdminActionsReq.prototype.setAdminUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional int64 target_user_id = 2;
 * @return {number}
 */
proto.org.couchers.admin.ListAdminActionsReq.prototype.getTargetUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.ListAdminActionsReq} returns this
 */
proto.org.couchers.admin.ListAdminActionsReq.prototype.setTargetUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional uint32 page_size = 3;
 * @return {number}
 */
proto.org.couchers.admin.ListAdminActionsReq.prototype.getPageSize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.ListAdminActionsReq} returns this
 */
proto.org.couchers.admin.ListAdminActionsReq.prototype.setPageSize = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional string page_token = 4;
 * @return {string}
 */
proto.org.couchers.admin.ListAdminActionsReq.prototype.getPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ListAdminActionsReq} returns this
 */
proto.org.couchers.admin.ListAdminActionsReq.prototype.setPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.ListAdminActionsRes.repeatedFields_ = [1];



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.org.couchers.admin.ListAdminActionsRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ListAdminActionsRes.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.org.couchers.admin.ListAdminActionsRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListAdminActionsRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    adminActionsList: jspb.Message.toObjectList(msg.getAdminActionsList(),
    proto.org.couchers.admin.AdminActionLog.toObject, includeInstance),
    nextPageToken: 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.org.couchers.admin.ListAdminActionsRes}
 */
proto.org.couchers.admin.ListAdminActionsRes.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.ListAdminActionsRes;
  return proto.org.couchers.admin.ListAdminActionsRes.deserializeBinaryFromReader(msg, reader);
};


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ListAdminActionsRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListAdminActionsRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getAdminActionsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.org.couchers.admin.AdminActionLog.serializeBinaryToWriter
    );
  }
  f = message.getNextPageToken();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * repeated AdminActionLog admin_actions = 1;
 * @return {!Array<!proto.org.couchers.admin.AdminActionLog>}
 */
proto.org.couchers.admin.ListAdminActionsRes.prototype.getAdminActionsList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.AdminActionLog>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.AdminActionLog, 1));
};


/**
 * @param {!Array<!proto.org.couchers.admin.AdminActionLog>} value
 * @return {!proto.org.couchers.admin.ListAdminActionsRes} returns this
*/
proto.org.couchers.admin.ListAdminActionsRes.prototype.setAdminActionsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.org.couchers.admin.AdminActionLog=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.AdminActionLog}
 */
proto.org.couchers.admin.ListAdminActionsRes.prototype.addAdminActions = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.couchers.admin.AdminActionLog, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.ListAdminActionsRes} returns this
 */
proto.org.couchers.admin.ListAdminActionsRes.prototype.clearAdminActionsList = function() {
  return this.setAdminActionsList([]);
};


/**
 * optional string next_page_token = 2;
 * @return {string}
 */
proto.org.couchers.admin.ListAdminActionsRes.prototype.getNextPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ListAdminActionsRes} returns this
 */
proto.org.couchers.admin.ListAdminActionsRes.prototype.setNextPageToken = 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.org.couchers.admin.ListUserUploadsReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ListUserUploadsReq.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.org.couchers.admin.ListUserUploadsReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListUserUploadsReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: jspb.Message.getFieldWithDefault(msg, 1, ""),
    pageSize: jspb.Message.getFieldWithDefault(msg, 2, 0),
    pageToken: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ListUserUploadsReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ListUserUploadsReq}
 */
proto.org.couchers.admin.ListUserUploadsReq.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.setUser(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setPageSize(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ListUserUploadsReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListUserUploadsReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUser();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getPageSize();
  if (f !== 0) {
    writer.writeUint32(
      2,
      f
    );
  }
  f = message.getPageToken();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional string user = 1;
 * @return {string}
 */
proto.org.couchers.admin.ListUserUploadsReq.prototype.getUser = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ListUserUploadsReq} returns this
 */
proto.org.couchers.admin.ListUserUploadsReq.prototype.setUser = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional uint32 page_size = 2;
 * @return {number}
 */
proto.org.couchers.admin.ListUserUploadsReq.prototype.getPageSize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.ListUserUploadsReq} returns this
 */
proto.org.couchers.admin.ListUserUploadsReq.prototype.setPageSize = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional string page_token = 3;
 * @return {string}
 */
proto.org.couchers.admin.ListUserUploadsReq.prototype.getPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ListUserUploadsReq} returns this
 */
proto.org.couchers.admin.ListUserUploadsReq.prototype.setPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 3, 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.org.couchers.admin.UploadUse.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.UploadUse.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.org.couchers.admin.UploadUse} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.UploadUse.toObject = function(includeInstance, msg) {
  var f, obj = {
    type: jspb.Message.getFieldWithDefault(msg, 1, 0),
    isCurrent: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),
    userId: jspb.Message.getFieldWithDefault(msg, 3, 0),
    eventId: jspb.Message.getFieldWithDefault(msg, 4, 0),
    pageId: jspb.Message.getFieldWithDefault(msg, 5, 0),
    url: jspb.Message.getFieldWithDefault(msg, 6, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.UploadUse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.UploadUse}
 */
proto.org.couchers.admin.UploadUse.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.org.couchers.admin.UploadUseType} */ (reader.readEnum());
      msg.setType(value);
      break;
    case 2:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsCurrent(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setUserId(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setEventId(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setPageId(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setUrl(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.UploadUse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.UploadUse.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
  f = message.getIsCurrent();
  if (f) {
    writer.writeBool(
      2,
      f
    );
  }
  f = message.getUserId();
  if (f !== 0) {
    writer.writeInt64(
      3,
      f
    );
  }
  f = message.getEventId();
  if (f !== 0) {
    writer.writeInt64(
      4,
      f
    );
  }
  f = message.getPageId();
  if (f !== 0) {
    writer.writeInt64(
      5,
      f
    );
  }
  f = message.getUrl();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
};


/**
 * optional UploadUseType type = 1;
 * @return {!proto.org.couchers.admin.UploadUseType}
 */
proto.org.couchers.admin.UploadUse.prototype.getType = function() {
  return /** @type {!proto.org.couchers.admin.UploadUseType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {!proto.org.couchers.admin.UploadUseType} value
 * @return {!proto.org.couchers.admin.UploadUse} returns this
 */
proto.org.couchers.admin.UploadUse.prototype.setType = function(value) {
  return jspb.Message.setProto3EnumField(this, 1, value);
};


/**
 * optional bool is_current = 2;
 * @return {boolean}
 */
proto.org.couchers.admin.UploadUse.prototype.getIsCurrent = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.UploadUse} returns this
 */
proto.org.couchers.admin.UploadUse.prototype.setIsCurrent = function(value) {
  return jspb.Message.setProto3BooleanField(this, 2, value);
};


/**
 * optional int64 user_id = 3;
 * @return {number}
 */
proto.org.couchers.admin.UploadUse.prototype.getUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.UploadUse} returns this
 */
proto.org.couchers.admin.UploadUse.prototype.setUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional int64 event_id = 4;
 * @return {number}
 */
proto.org.couchers.admin.UploadUse.prototype.getEventId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.UploadUse} returns this
 */
proto.org.couchers.admin.UploadUse.prototype.setEventId = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional int64 page_id = 5;
 * @return {number}
 */
proto.org.couchers.admin.UploadUse.prototype.getPageId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.UploadUse} returns this
 */
proto.org.couchers.admin.UploadUse.prototype.setPageId = function(value) {
  return jspb.Message.setProto3IntField(this, 5, value);
};


/**
 * optional string url = 6;
 * @return {string}
 */
proto.org.couchers.admin.UploadUse.prototype.getUrl = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UploadUse} returns this
 */
proto.org.couchers.admin.UploadUse.prototype.setUrl = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.UserUpload.repeatedFields_ = [7];



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.org.couchers.admin.UserUpload.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.UserUpload.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.org.couchers.admin.UserUpload} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.UserUpload.toObject = function(includeInstance, msg) {
  var f, obj = {
    key: jspb.Message.getFieldWithDefault(msg, 1, ""),
    filename: jspb.Message.getFieldWithDefault(msg, 2, ""),
    fullUrl: jspb.Message.getFieldWithDefault(msg, 3, ""),
    thumbnailUrl: jspb.Message.getFieldWithDefault(msg, 4, ""),
    credit: jspb.Message.getFieldWithDefault(msg, 5, ""),
    created: (f = msg.getCreated()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    usesList: jspb.Message.toObjectList(msg.getUsesList(),
    proto.org.couchers.admin.UploadUse.toObject, includeInstance)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.UserUpload} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.UserUpload}
 */
proto.org.couchers.admin.UserUpload.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.setKey(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setFilename(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setFullUrl(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setThumbnailUrl(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setCredit(value);
      break;
    case 6:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setCreated(value);
      break;
    case 7:
      var value = new proto.org.couchers.admin.UploadUse;
      reader.readMessage(value,proto.org.couchers.admin.UploadUse.deserializeBinaryFromReader);
      msg.addUses(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.UserUpload} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.UserUpload.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getKey();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getFilename();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getFullUrl();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getThumbnailUrl();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getCredit();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getCreated();
  if (f != null) {
    writer.writeMessage(
      6,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getUsesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      7,
      f,
      proto.org.couchers.admin.UploadUse.serializeBinaryToWriter
    );
  }
};


/**
 * optional string key = 1;
 * @return {string}
 */
proto.org.couchers.admin.UserUpload.prototype.getKey = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UserUpload} returns this
 */
proto.org.couchers.admin.UserUpload.prototype.setKey = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string filename = 2;
 * @return {string}
 */
proto.org.couchers.admin.UserUpload.prototype.getFilename = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UserUpload} returns this
 */
proto.org.couchers.admin.UserUpload.prototype.setFilename = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string full_url = 3;
 * @return {string}
 */
proto.org.couchers.admin.UserUpload.prototype.getFullUrl = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UserUpload} returns this
 */
proto.org.couchers.admin.UserUpload.prototype.setFullUrl = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string thumbnail_url = 4;
 * @return {string}
 */
proto.org.couchers.admin.UserUpload.prototype.getThumbnailUrl = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UserUpload} returns this
 */
proto.org.couchers.admin.UserUpload.prototype.setThumbnailUrl = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string credit = 5;
 * @return {string}
 */
proto.org.couchers.admin.UserUpload.prototype.getCredit = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.UserUpload} returns this
 */
proto.org.couchers.admin.UserUpload.prototype.setCredit = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional google.protobuf.Timestamp created = 6;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.UserUpload.prototype.getCreated = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 6));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.UserUpload} returns this
*/
proto.org.couchers.admin.UserUpload.prototype.setCreated = function(value) {
  return jspb.Message.setWrapperField(this, 6, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.UserUpload} returns this
 */
proto.org.couchers.admin.UserUpload.prototype.clearCreated = function() {
  return this.setCreated(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.UserUpload.prototype.hasCreated = function() {
  return jspb.Message.getField(this, 6) != null;
};


/**
 * repeated UploadUse uses = 7;
 * @return {!Array<!proto.org.couchers.admin.UploadUse>}
 */
proto.org.couchers.admin.UserUpload.prototype.getUsesList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.UploadUse>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.UploadUse, 7));
};


/**
 * @param {!Array<!proto.org.couchers.admin.UploadUse>} value
 * @return {!proto.org.couchers.admin.UserUpload} returns this
*/
proto.org.couchers.admin.UserUpload.prototype.setUsesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 7, value);
};


/**
 * @param {!proto.org.couchers.admin.UploadUse=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.UploadUse}
 */
proto.org.couchers.admin.UserUpload.prototype.addUses = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, proto.org.couchers.admin.UploadUse, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.UserUpload} returns this
 */
proto.org.couchers.admin.UserUpload.prototype.clearUsesList = function() {
  return this.setUsesList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.ListUserUploadsRes.repeatedFields_ = [1];



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.org.couchers.admin.ListUserUploadsRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ListUserUploadsRes.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.org.couchers.admin.ListUserUploadsRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListUserUploadsRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    uploadsList: jspb.Message.toObjectList(msg.getUploadsList(),
    proto.org.couchers.admin.UserUpload.toObject, includeInstance),
    nextPageToken: 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.org.couchers.admin.ListUserUploadsRes}
 */
proto.org.couchers.admin.ListUserUploadsRes.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.ListUserUploadsRes;
  return proto.org.couchers.admin.ListUserUploadsRes.deserializeBinaryFromReader(msg, reader);
};


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ListUserUploadsRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListUserUploadsRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUploadsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.org.couchers.admin.UserUpload.serializeBinaryToWriter
    );
  }
  f = message.getNextPageToken();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * repeated UserUpload uploads = 1;
 * @return {!Array<!proto.org.couchers.admin.UserUpload>}
 */
proto.org.couchers.admin.ListUserUploadsRes.prototype.getUploadsList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.UserUpload>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.UserUpload, 1));
};


/**
 * @param {!Array<!proto.org.couchers.admin.UserUpload>} value
 * @return {!proto.org.couchers.admin.ListUserUploadsRes} returns this
*/
proto.org.couchers.admin.ListUserUploadsRes.prototype.setUploadsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.org.couchers.admin.UserUpload=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.UserUpload}
 */
proto.org.couchers.admin.ListUserUploadsRes.prototype.addUploads = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.couchers.admin.UserUpload, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.ListUserUploadsRes} returns this
 */
proto.org.couchers.admin.ListUserUploadsRes.prototype.clearUploadsList = function() {
  return this.setUploadsList([]);
};


/**
 * optional string next_page_token = 2;
 * @return {string}
 */
proto.org.couchers.admin.ListUserUploadsRes.prototype.getNextPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ListUserUploadsRes} returns this
 */
proto.org.couchers.admin.ListUserUploadsRes.prototype.setNextPageToken = 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.org.couchers.admin.OTAPackage.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.OTAPackage.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.org.couchers.admin.OTAPackage} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.OTAPackage.toObject = function(includeInstance, msg) {
  var f, obj = {
    otaPackageId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    created: (f = msg.getCreated()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    creatorUserId: jspb.Message.getFieldWithDefault(msg, 3, 0),
    platform: jspb.Message.getFieldWithDefault(msg, 4, 0),
    fingerprint: jspb.Message.getFieldWithDefault(msg, 5, ""),
    version: jspb.Message.getFieldWithDefault(msg, 6, ""),
    manifestCreatedAt: (f = msg.getManifestCreatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    manifestId: jspb.Message.getFieldWithDefault(msg, 8, ""),
    banned: jspb.Message.getBooleanFieldWithDefault(msg, 9, false),
    bannedAt: (f = msg.getBannedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    bannedByUserId: jspb.Message.getFieldWithDefault(msg, 11, 0),
    bannedReason: jspb.Message.getFieldWithDefault(msg, 12, ""),
    live: jspb.Message.getBooleanFieldWithDefault(msg, 13, 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.org.couchers.admin.OTAPackage}
 */
proto.org.couchers.admin.OTAPackage.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.OTAPackage;
  return proto.org.couchers.admin.OTAPackage.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.OTAPackage} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.OTAPackage}
 */
proto.org.couchers.admin.OTAPackage.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.setOtaPackageId(value);
      break;
    case 2:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setCreated(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setCreatorUserId(value);
      break;
    case 4:
      var value = /** @type {!proto.org.couchers.admin.OTAPlatform} */ (reader.readEnum());
      msg.setPlatform(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setFingerprint(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setVersion(value);
      break;
    case 7:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setManifestCreatedAt(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setManifestId(value);
      break;
    case 9:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setBanned(value);
      break;
    case 10:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setBannedAt(value);
      break;
    case 11:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setBannedByUserId(value);
      break;
    case 12:
      var value = /** @type {string} */ (reader.readString());
      msg.setBannedReason(value);
      break;
    case 13:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setLive(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.OTAPackage} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.OTAPackage.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getOtaPackageId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getCreated();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getCreatorUserId();
  if (f !== 0) {
    writer.writeInt64(
      3,
      f
    );
  }
  f = message.getPlatform();
  if (f !== 0.0) {
    writer.writeEnum(
      4,
      f
    );
  }
  f = message.getFingerprint();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getVersion();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getManifestCreatedAt();
  if (f != null) {
    writer.writeMessage(
      7,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getManifestId();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getBanned();
  if (f) {
    writer.writeBool(
      9,
      f
    );
  }
  f = message.getBannedAt();
  if (f != null) {
    writer.writeMessage(
      10,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getBannedByUserId();
  if (f !== 0) {
    writer.writeInt64(
      11,
      f
    );
  }
  f = message.getBannedReason();
  if (f.length > 0) {
    writer.writeString(
      12,
      f
    );
  }
  f = message.getLive();
  if (f) {
    writer.writeBool(
      13,
      f
    );
  }
};


/**
 * optional int64 ota_package_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.OTAPackage.prototype.getOtaPackageId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.setOtaPackageId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional google.protobuf.Timestamp created = 2;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.OTAPackage.prototype.getCreated = 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.org.couchers.admin.OTAPackage} returns this
*/
proto.org.couchers.admin.OTAPackage.prototype.setCreated = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.clearCreated = function() {
  return this.setCreated(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.OTAPackage.prototype.hasCreated = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional int64 creator_user_id = 3;
 * @return {number}
 */
proto.org.couchers.admin.OTAPackage.prototype.getCreatorUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.setCreatorUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional OTAPlatform platform = 4;
 * @return {!proto.org.couchers.admin.OTAPlatform}
 */
proto.org.couchers.admin.OTAPackage.prototype.getPlatform = function() {
  return /** @type {!proto.org.couchers.admin.OTAPlatform} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {!proto.org.couchers.admin.OTAPlatform} value
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.setPlatform = function(value) {
  return jspb.Message.setProto3EnumField(this, 4, value);
};


/**
 * optional string fingerprint = 5;
 * @return {string}
 */
proto.org.couchers.admin.OTAPackage.prototype.getFingerprint = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.setFingerprint = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string version = 6;
 * @return {string}
 */
proto.org.couchers.admin.OTAPackage.prototype.getVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.setVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional google.protobuf.Timestamp manifest_created_at = 7;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.OTAPackage.prototype.getManifestCreatedAt = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 7));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
*/
proto.org.couchers.admin.OTAPackage.prototype.setManifestCreatedAt = function(value) {
  return jspb.Message.setWrapperField(this, 7, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.clearManifestCreatedAt = function() {
  return this.setManifestCreatedAt(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.OTAPackage.prototype.hasManifestCreatedAt = function() {
  return jspb.Message.getField(this, 7) != null;
};


/**
 * optional string manifest_id = 8;
 * @return {string}
 */
proto.org.couchers.admin.OTAPackage.prototype.getManifestId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.setManifestId = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional bool banned = 9;
 * @return {boolean}
 */
proto.org.couchers.admin.OTAPackage.prototype.getBanned = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.setBanned = function(value) {
  return jspb.Message.setProto3BooleanField(this, 9, value);
};


/**
 * optional google.protobuf.Timestamp banned_at = 10;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.admin.OTAPackage.prototype.getBannedAt = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 10));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
*/
proto.org.couchers.admin.OTAPackage.prototype.setBannedAt = function(value) {
  return jspb.Message.setWrapperField(this, 10, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.clearBannedAt = function() {
  return this.setBannedAt(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.admin.OTAPackage.prototype.hasBannedAt = function() {
  return jspb.Message.getField(this, 10) != null;
};


/**
 * optional int64 banned_by_user_id = 11;
 * @return {number}
 */
proto.org.couchers.admin.OTAPackage.prototype.getBannedByUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.setBannedByUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 11, value);
};


/**
 * optional string banned_reason = 12;
 * @return {string}
 */
proto.org.couchers.admin.OTAPackage.prototype.getBannedReason = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.setBannedReason = function(value) {
  return jspb.Message.setProto3StringField(this, 12, value);
};


/**
 * optional bool live = 13;
 * @return {boolean}
 */
proto.org.couchers.admin.OTAPackage.prototype.getLive = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 13, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.OTAPackage} returns this
 */
proto.org.couchers.admin.OTAPackage.prototype.setLive = function(value) {
  return jspb.Message.setProto3BooleanField(this, 13, 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.org.couchers.admin.CreateOTAPackageReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.CreateOTAPackageReq.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.org.couchers.admin.CreateOTAPackageReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.CreateOTAPackageReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    platform: jspb.Message.getFieldWithDefault(msg, 1, 0),
    version: 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.org.couchers.admin.CreateOTAPackageReq}
 */
proto.org.couchers.admin.CreateOTAPackageReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.CreateOTAPackageReq;
  return proto.org.couchers.admin.CreateOTAPackageReq.deserializeBinaryFromReader(msg, reader);
};


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.CreateOTAPackageReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.CreateOTAPackageReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPlatform();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
  f = message.getVersion();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * optional OTAPlatform platform = 1;
 * @return {!proto.org.couchers.admin.OTAPlatform}
 */
proto.org.couchers.admin.CreateOTAPackageReq.prototype.getPlatform = function() {
  return /** @type {!proto.org.couchers.admin.OTAPlatform} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {!proto.org.couchers.admin.OTAPlatform} value
 * @return {!proto.org.couchers.admin.CreateOTAPackageReq} returns this
 */
proto.org.couchers.admin.CreateOTAPackageReq.prototype.setPlatform = function(value) {
  return jspb.Message.setProto3EnumField(this, 1, value);
};


/**
 * optional string version = 2;
 * @return {string}
 */
proto.org.couchers.admin.CreateOTAPackageReq.prototype.getVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.CreateOTAPackageReq} returns this
 */
proto.org.couchers.admin.CreateOTAPackageReq.prototype.setVersion = 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.org.couchers.admin.ListOTAPackagesReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ListOTAPackagesReq.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.org.couchers.admin.ListOTAPackagesReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListOTAPackagesReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    platform: jspb.Message.getFieldWithDefault(msg, 1, 0),
    fingerprint: jspb.Message.getFieldWithDefault(msg, 2, ""),
    includeBanned: jspb.Message.getBooleanFieldWithDefault(msg, 3, 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.org.couchers.admin.ListOTAPackagesReq}
 */
proto.org.couchers.admin.ListOTAPackagesReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.ListOTAPackagesReq;
  return proto.org.couchers.admin.ListOTAPackagesReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ListOTAPackagesReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ListOTAPackagesReq}
 */
proto.org.couchers.admin.ListOTAPackagesReq.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.org.couchers.admin.OTAPlatform} */ (reader.readEnum());
      msg.setPlatform(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setFingerprint(value);
      break;
    case 3:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIncludeBanned(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ListOTAPackagesReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListOTAPackagesReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPlatform();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
  f = message.getFingerprint();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getIncludeBanned();
  if (f) {
    writer.writeBool(
      3,
      f
    );
  }
};


/**
 * optional OTAPlatform platform = 1;
 * @return {!proto.org.couchers.admin.OTAPlatform}
 */
proto.org.couchers.admin.ListOTAPackagesReq.prototype.getPlatform = function() {
  return /** @type {!proto.org.couchers.admin.OTAPlatform} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {!proto.org.couchers.admin.OTAPlatform} value
 * @return {!proto.org.couchers.admin.ListOTAPackagesReq} returns this
 */
proto.org.couchers.admin.ListOTAPackagesReq.prototype.setPlatform = function(value) {
  return jspb.Message.setProto3EnumField(this, 1, value);
};


/**
 * optional string fingerprint = 2;
 * @return {string}
 */
proto.org.couchers.admin.ListOTAPackagesReq.prototype.getFingerprint = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.ListOTAPackagesReq} returns this
 */
proto.org.couchers.admin.ListOTAPackagesReq.prototype.setFingerprint = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional bool include_banned = 3;
 * @return {boolean}
 */
proto.org.couchers.admin.ListOTAPackagesReq.prototype.getIncludeBanned = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.admin.ListOTAPackagesReq} returns this
 */
proto.org.couchers.admin.ListOTAPackagesReq.prototype.setIncludeBanned = function(value) {
  return jspb.Message.setProto3BooleanField(this, 3, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.admin.ListOTAPackagesRes.repeatedFields_ = [1];



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.org.couchers.admin.ListOTAPackagesRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.ListOTAPackagesRes.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.org.couchers.admin.ListOTAPackagesRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListOTAPackagesRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    packagesList: jspb.Message.toObjectList(msg.getPackagesList(),
    proto.org.couchers.admin.OTAPackage.toObject, includeInstance)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.ListOTAPackagesRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.ListOTAPackagesRes}
 */
proto.org.couchers.admin.ListOTAPackagesRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.org.couchers.admin.OTAPackage;
      reader.readMessage(value,proto.org.couchers.admin.OTAPackage.deserializeBinaryFromReader);
      msg.addPackages(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.admin.ListOTAPackagesRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.ListOTAPackagesRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPackagesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.org.couchers.admin.OTAPackage.serializeBinaryToWriter
    );
  }
};


/**
 * repeated OTAPackage packages = 1;
 * @return {!Array<!proto.org.couchers.admin.OTAPackage>}
 */
proto.org.couchers.admin.ListOTAPackagesRes.prototype.getPackagesList = function() {
  return /** @type{!Array<!proto.org.couchers.admin.OTAPackage>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.admin.OTAPackage, 1));
};


/**
 * @param {!Array<!proto.org.couchers.admin.OTAPackage>} value
 * @return {!proto.org.couchers.admin.ListOTAPackagesRes} returns this
*/
proto.org.couchers.admin.ListOTAPackagesRes.prototype.setPackagesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.org.couchers.admin.OTAPackage=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.admin.OTAPackage}
 */
proto.org.couchers.admin.ListOTAPackagesRes.prototype.addPackages = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.couchers.admin.OTAPackage, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.admin.ListOTAPackagesRes} returns this
 */
proto.org.couchers.admin.ListOTAPackagesRes.prototype.clearPackagesList = function() {
  return this.setPackagesList([]);
};





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.org.couchers.admin.BanOTAPackageReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.admin.BanOTAPackageReq.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.org.couchers.admin.BanOTAPackageReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.admin.BanOTAPackageReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    otaPackageId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    reason: 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.org.couchers.admin.BanOTAPackageReq}
 */
proto.org.couchers.admin.BanOTAPackageReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.admin.BanOTAPackageReq;
  return proto.org.couchers.admin.BanOTAPackageReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.admin.BanOTAPackageReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.admin.BanOTAPackageReq}
 */
proto.org.couchers.admin.BanOTAPackageReq.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.setOtaPackageId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setReason(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


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


/**
 * optional int64 ota_package_id = 1;
 * @return {number}
 */
proto.org.couchers.admin.BanOTAPackageReq.prototype.getOtaPackageId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.admin.BanOTAPackageReq} returns this
 */
proto.org.couchers.admin.BanOTAPackageReq.prototype.setOtaPackageId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string reason = 2;
 * @return {string}
 */
proto.org.couchers.admin.BanOTAPackageReq.prototype.getReason = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.admin.BanOTAPackageReq} returns this
 */
proto.org.couchers.admin.BanOTAPackageReq.prototype.setReason = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * @enum {number}
 */
proto.org.couchers.admin.AdminActionLevel = {
  ADMIN_ACTION_LEVEL_UNSPECIFIED: 0,
  ADMIN_ACTION_LEVEL_TRACE: 4,
  ADMIN_ACTION_LEVEL_DEBUG: 1,
  ADMIN_ACTION_LEVEL_NORMAL: 2,
  ADMIN_ACTION_LEVEL_HIGH: 3
};

/**
 * @enum {number}
 */
proto.org.couchers.admin.NonvisibleUserAccessType = {
  NONVISIBLE_USER_ACCESS_TYPE_UNSPECIFIED: 0,
  NONVISIBLE_USER_ACCESS_TYPE_LOGIN_ATTEMPT: 1,
  NONVISIBLE_USER_ACCESS_TYPE_PROFILE_VIEW: 2,
  NONVISIBLE_USER_ACCESS_TYPE_GHOST_SERVED: 3
};

/**
 * @enum {number}
 */
proto.org.couchers.admin.NonvisibleUserState = {
  NONVISIBLE_USER_STATE_UNSPECIFIED: 0,
  NONVISIBLE_USER_STATE_BANNED: 1,
  NONVISIBLE_USER_STATE_SHADOWED: 2,
  NONVISIBLE_USER_STATE_DELETED: 3
};

/**
 * @enum {number}
 */
proto.org.couchers.admin.UploadUseType = {
  UPLOAD_USE_TYPE_UNSPECIFIED: 0,
  UPLOAD_USE_TYPE_PROFILE_GALLERY_PHOTO: 1,
  UPLOAD_USE_TYPE_PROFILE_GALLERY_PHOTO_AVATAR: 2,
  UPLOAD_USE_TYPE_EVENT: 3,
  UPLOAD_USE_TYPE_PAGE: 4
};

/**
 * @enum {number}
 */
proto.org.couchers.admin.OTAPlatform = {
  OTA_PLATFORM_UNSPECIFIED: 0,
  OTA_PLATFORM_IOS: 1,
  OTA_PLATFORM_ANDROID: 2
};

goog.object.extend(exports, proto.org.couchers.admin);
