From c0b21f82ee004ff5f55ce7de93734774d00fb92f Mon Sep 17 00:00:00 2001 From: Tal Moran Date: Sun, 2 Jul 2017 16:42:45 +0300 Subject: [PATCH] Added toy angular application (for bulletin-board frontend) --- .gitignore | 15 + .../.angular-cli.json | 57 + bulletin-board-server-frontend/.editorconfig | 13 + bulletin-board-server-frontend/.gitignore | 42 + bulletin-board-server-frontend/README.md | 28 + .../e2e/app.e2e-spec.ts | 14 + bulletin-board-server-frontend/e2e/app.po.ts | 11 + .../e2e/tsconfig.e2e.json | 13 + bulletin-board-server-frontend/karma.conf.js | 33 + bulletin-board-server-frontend/package.json | 51 + .../protractor.conf.js | 28 + .../src/app/app.component.css | 0 .../src/app/app.component.html | 12 + .../src/app/app.component.spec.ts | 32 + .../src/app/app.component.ts | 30 + .../src/app/app.module.ts | 20 + .../src/app/bb.service.ts | 37 + .../src/app/bundle.d.ts | 7527 +++++++ .../src/app/bundle.js | 17755 ++++++++++++++++ .../src/assets/.gitkeep | 0 .../src/environments/environment.prod.ts | 3 + .../src/environments/environment.ts | 8 + .../src/favicon.ico | Bin 0 -> 5430 bytes bulletin-board-server-frontend/src/index.html | 14 + bulletin-board-server-frontend/src/main.ts | 11 + .../src/polyfills.ts | 72 + .../src/proto/DKG.proto | 1 + .../proto/ballot_question_ui_element.proto | 1 + .../src/proto/bulletin_board_api.proto | 1 + .../src/proto/bulletin_board_webapp.proto | 1 + .../src/proto/comm.proto | 1 + .../src/proto/concrete_crypto.proto | 1 + .../src/proto/crypto.proto | 1 + .../src/proto/mixing.proto | 1 + .../src/proto/polling_station.proto | 1 + .../src/proto/voting.proto | 1 + bulletin-board-server-frontend/src/styles.css | 1 + bulletin-board-server-frontend/src/test.ts | 32 + .../src/tsconfig.app.json | 13 + .../src/tsconfig.spec.json | 20 + .../src/typings.d.ts | 5 + bulletin-board-server-frontend/tsconfig.json | 20 + bulletin-board-server-frontend/tslint.json | 135 + .../webapp/BulletinBoardWebApp.java | 6 +- 44 files changed, 26066 insertions(+), 2 deletions(-) create mode 100644 bulletin-board-server-frontend/.angular-cli.json create mode 100644 bulletin-board-server-frontend/.editorconfig create mode 100644 bulletin-board-server-frontend/.gitignore create mode 100644 bulletin-board-server-frontend/README.md create mode 100644 bulletin-board-server-frontend/e2e/app.e2e-spec.ts create mode 100644 bulletin-board-server-frontend/e2e/app.po.ts create mode 100644 bulletin-board-server-frontend/e2e/tsconfig.e2e.json create mode 100644 bulletin-board-server-frontend/karma.conf.js create mode 100644 bulletin-board-server-frontend/package.json create mode 100644 bulletin-board-server-frontend/protractor.conf.js create mode 100644 bulletin-board-server-frontend/src/app/app.component.css create mode 100644 bulletin-board-server-frontend/src/app/app.component.html create mode 100644 bulletin-board-server-frontend/src/app/app.component.spec.ts create mode 100644 bulletin-board-server-frontend/src/app/app.component.ts create mode 100644 bulletin-board-server-frontend/src/app/app.module.ts create mode 100644 bulletin-board-server-frontend/src/app/bb.service.ts create mode 100644 bulletin-board-server-frontend/src/app/bundle.d.ts create mode 100644 bulletin-board-server-frontend/src/app/bundle.js create mode 100644 bulletin-board-server-frontend/src/assets/.gitkeep create mode 100644 bulletin-board-server-frontend/src/environments/environment.prod.ts create mode 100644 bulletin-board-server-frontend/src/environments/environment.ts create mode 100644 bulletin-board-server-frontend/src/favicon.ico create mode 100644 bulletin-board-server-frontend/src/index.html create mode 100644 bulletin-board-server-frontend/src/main.ts create mode 100644 bulletin-board-server-frontend/src/polyfills.ts create mode 120000 bulletin-board-server-frontend/src/proto/DKG.proto create mode 120000 bulletin-board-server-frontend/src/proto/ballot_question_ui_element.proto create mode 120000 bulletin-board-server-frontend/src/proto/bulletin_board_api.proto create mode 120000 bulletin-board-server-frontend/src/proto/bulletin_board_webapp.proto create mode 120000 bulletin-board-server-frontend/src/proto/comm.proto create mode 120000 bulletin-board-server-frontend/src/proto/concrete_crypto.proto create mode 120000 bulletin-board-server-frontend/src/proto/crypto.proto create mode 120000 bulletin-board-server-frontend/src/proto/mixing.proto create mode 120000 bulletin-board-server-frontend/src/proto/polling_station.proto create mode 120000 bulletin-board-server-frontend/src/proto/voting.proto create mode 100644 bulletin-board-server-frontend/src/styles.css create mode 100644 bulletin-board-server-frontend/src/test.ts create mode 100644 bulletin-board-server-frontend/src/tsconfig.app.json create mode 100644 bulletin-board-server-frontend/src/tsconfig.spec.json create mode 100644 bulletin-board-server-frontend/src/typings.d.ts create mode 100644 bulletin-board-server-frontend/tsconfig.json create mode 100644 bulletin-board-server-frontend/tslint.json diff --git a/.gitignore b/.gitignore index ad9846b..483d4e0 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,18 @@ out /meerkat_election_params_tempfile.dat /meerkat_booth_system_messages.dat local.properties +# Angular junk +*/tmp +*/dist +*/out-tsc +*/node_modules +*/e2e/*.js +*/e2e/*.map +*/.sass-cache +*/connect.lock +*/coverage +*/libpeerconnection.log +npm-debug.log +testem.log +*/typings + diff --git a/bulletin-board-server-frontend/.angular-cli.json b/bulletin-board-server-frontend/.angular-cli.json new file mode 100644 index 0000000..23ffead --- /dev/null +++ b/bulletin-board-server-frontend/.angular-cli.json @@ -0,0 +1,57 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "project": { + "name": "bulletin-board-server-frontend" + }, + "apps": [ + { + "root": "src", + "outDir": "dist", + "assets": [ + "assets", + "favicon.ico" + ], + "index": "index.html", + "main": "main.ts", + "polyfills": "polyfills.ts", + "test": "test.ts", + "tsconfig": "tsconfig.app.json", + "testTsconfig": "tsconfig.spec.json", + "prefix": "app", + "styles": [ + "styles.css" + ], + "scripts": [], + "environmentSource": "environments/environment.ts", + "environments": { + "dev": "environments/environment.ts", + "prod": "environments/environment.prod.ts" + } + } + ], + "e2e": { + "protractor": { + "config": "./protractor.conf.js" + } + }, + "lint": [ + { + "project": "src/tsconfig.app.json" + }, + { + "project": "src/tsconfig.spec.json" + }, + { + "project": "e2e/tsconfig.e2e.json" + } + ], + "test": { + "karma": { + "config": "./karma.conf.js" + } + }, + "defaults": { + "styleExt": "css", + "component": {} + } +} diff --git a/bulletin-board-server-frontend/.editorconfig b/bulletin-board-server-frontend/.editorconfig new file mode 100644 index 0000000..6e87a00 --- /dev/null +++ b/bulletin-board-server-frontend/.editorconfig @@ -0,0 +1,13 @@ +# Editor configuration, see http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/bulletin-board-server-frontend/.gitignore b/bulletin-board-server-frontend/.gitignore new file mode 100644 index 0000000..54bfd20 --- /dev/null +++ b/bulletin-board-server-frontend/.gitignore @@ -0,0 +1,42 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc + +# dependencies +/node_modules + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +testem.log +/typings + +# e2e +/e2e/*.js +/e2e/*.map + +# System Files +.DS_Store +Thumbs.db diff --git a/bulletin-board-server-frontend/README.md b/bulletin-board-server-frontend/README.md new file mode 100644 index 0000000..280da2e --- /dev/null +++ b/bulletin-board-server-frontend/README.md @@ -0,0 +1,28 @@ +# BulletinBoardServerFrontend + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.2.0. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). +Before running the tests make sure you are serving the app via `ng serve`. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/bulletin-board-server-frontend/e2e/app.e2e-spec.ts b/bulletin-board-server-frontend/e2e/app.e2e-spec.ts new file mode 100644 index 0000000..d53b473 --- /dev/null +++ b/bulletin-board-server-frontend/e2e/app.e2e-spec.ts @@ -0,0 +1,14 @@ +import { BulletinBoardServerFrontendPage } from './app.po'; + +describe('bulletin-board-server-frontend App', () => { + let page: BulletinBoardServerFrontendPage; + + beforeEach(() => { + page = new BulletinBoardServerFrontendPage(); + }); + + it('should display welcome message', () => { + page.navigateTo(); + expect(page.getParagraphText()).toEqual('Welcome to app!!'); + }); +}); diff --git a/bulletin-board-server-frontend/e2e/app.po.ts b/bulletin-board-server-frontend/e2e/app.po.ts new file mode 100644 index 0000000..df1e7ee --- /dev/null +++ b/bulletin-board-server-frontend/e2e/app.po.ts @@ -0,0 +1,11 @@ +import { browser, by, element } from 'protractor'; + +export class BulletinBoardServerFrontendPage { + navigateTo() { + return browser.get('/'); + } + + getParagraphText() { + return element(by.css('app-root h1')).getText(); + } +} diff --git a/bulletin-board-server-frontend/e2e/tsconfig.e2e.json b/bulletin-board-server-frontend/e2e/tsconfig.e2e.json new file mode 100644 index 0000000..39b800f --- /dev/null +++ b/bulletin-board-server-frontend/e2e/tsconfig.e2e.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "module": "commonjs", + "target": "es5", + "types": [ + "jasmine", + "jasminewd2", + "node" + ] + } +} diff --git a/bulletin-board-server-frontend/karma.conf.js b/bulletin-board-server-frontend/karma.conf.js new file mode 100644 index 0000000..4d9ab9d --- /dev/null +++ b/bulletin-board-server-frontend/karma.conf.js @@ -0,0 +1,33 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/0.13/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular/cli'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular/cli/plugins/karma') + ], + client:{ + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + reports: [ 'html', 'lcovonly' ], + fixWebpackSourcePaths: true + }, + angularCli: { + environment: 'dev' + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false + }); +}; diff --git a/bulletin-board-server-frontend/package.json b/bulletin-board-server-frontend/package.json new file mode 100644 index 0000000..eff5461 --- /dev/null +++ b/bulletin-board-server-frontend/package.json @@ -0,0 +1,51 @@ +{ + "name": "bulletin-board-server-frontend", + "version": "0.0.0", + "license": "MIT", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular/animations": "^4.0.0", + "@angular/common": "^4.0.0", + "@angular/compiler": "^4.0.0", + "@angular/core": "^4.0.0", + "@angular/forms": "^4.0.0", + "@angular/http": "^4.0.0", + "@angular/platform-browser": "^4.0.0", + "@angular/platform-browser-dynamic": "^4.0.0", + "@angular/router": "^4.0.0", + "@types/long": "^3.0.31", + "core-js": "^2.4.1", + "protobuf.js": "^6.8.0", + "rxjs": "^5.1.0", + "zone.js": "^0.8.4" + }, + "devDependencies": { + "@angular/cli": "1.2.0", + "@angular/compiler-cli": "^4.0.0", + "@angular/language-service": "^4.0.0", + "@types/jasmine": "~2.5.53", + "@types/jasminewd2": "~2.0.2", + "@types/node": "~6.0.60", + "codelyzer": "~3.0.1", + "jasmine-core": "~2.6.2", + "jasmine-spec-reporter": "~4.1.0", + "karma": "~1.7.0", + "karma-chrome-launcher": "~2.1.1", + "karma-cli": "~1.0.1", + "karma-coverage-istanbul-reporter": "^1.2.1", + "karma-jasmine": "~1.1.0", + "karma-jasmine-html-reporter": "^0.2.2", + "protractor": "~5.1.2", + "ts-node": "~3.0.4", + "tslint": "~5.3.2", + "typescript": "~2.3.3" + } +} diff --git a/bulletin-board-server-frontend/protractor.conf.js b/bulletin-board-server-frontend/protractor.conf.js new file mode 100644 index 0000000..7ee3b5e --- /dev/null +++ b/bulletin-board-server-frontend/protractor.conf.js @@ -0,0 +1,28 @@ +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter } = require('jasmine-spec-reporter'); + +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './e2e/**/*.e2e-spec.ts' + ], + capabilities: { + 'browserName': 'chrome' + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + onPrepare() { + require('ts-node').register({ + project: 'e2e/tsconfig.e2e.json' + }); + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); + } +}; diff --git a/bulletin-board-server-frontend/src/app/app.component.css b/bulletin-board-server-frontend/src/app/app.component.css new file mode 100644 index 0000000..e69de29 diff --git a/bulletin-board-server-frontend/src/app/app.component.html b/bulletin-board-server-frontend/src/app/app.component.html new file mode 100644 index 0000000..801abde --- /dev/null +++ b/bulletin-board-server-frontend/src/app/app.component.html @@ -0,0 +1,12 @@ + +
+

+ Welcome to {{title}}!! +

+ +

Current status: {{status}}

+ +
+ {{errorMessage}} +
+ diff --git a/bulletin-board-server-frontend/src/app/app.component.spec.ts b/bulletin-board-server-frontend/src/app/app.component.spec.ts new file mode 100644 index 0000000..7d2799c --- /dev/null +++ b/bulletin-board-server-frontend/src/app/app.component.spec.ts @@ -0,0 +1,32 @@ +import { TestBed, async } from '@angular/core/testing'; + +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ + AppComponent + ], + }).compileComponents(); + })); + + it('should create the app', async(() => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app).toBeTruthy(); + })); + + it(`should have as title 'app'`, async(() => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app.title).toEqual('app'); + })); + + it('should render title in a h1 tag', async(() => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.debugElement.nativeElement; + expect(compiled.querySelector('h1').textContent).toContain('Welcome to app!!'); + })); +}); diff --git a/bulletin-board-server-frontend/src/app/app.component.ts b/bulletin-board-server-frontend/src/app/app.component.ts new file mode 100644 index 0000000..adff3f3 --- /dev/null +++ b/bulletin-board-server-frontend/src/app/app.component.ts @@ -0,0 +1,30 @@ +import {Component, OnInit} from '@angular/core'; +import {BBService} from "./bb.service"; // respectively "./node_modules/protobufjs" + + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.css'], + providers: [BBService] +}) + +export class AppComponent implements OnInit { + + title = 'Bulletin-Board Server'; + status = 'Not connected'; + errorMessage = ''; + + constructor(private bbservice : BBService) { } + + + ngOnInit(): void { + this.bbservice.getStatus().subscribe( + status => this.status = status.name, + error => this.errorMessage = error + ); + } + +} + + diff --git a/bulletin-board-server-frontend/src/app/app.module.ts b/bulletin-board-server-frontend/src/app/app.module.ts new file mode 100644 index 0000000..b15df26 --- /dev/null +++ b/bulletin-board-server-frontend/src/app/app.module.ts @@ -0,0 +1,20 @@ +import { BrowserModule } from '@angular/platform-browser'; +import { NgModule } from '@angular/core'; +import { HttpModule } from '@angular/http'; + +import { AppComponent } from './app.component'; +import {BBService} from "./bb.service"; + + +@NgModule({ + declarations: [ + AppComponent, + ], + imports: [ + BrowserModule, + HttpModule, + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { } diff --git a/bulletin-board-server-frontend/src/app/bb.service.ts b/bulletin-board-server-frontend/src/app/bb.service.ts new file mode 100644 index 0000000..9e678f0 --- /dev/null +++ b/bulletin-board-server-frontend/src/app/bb.service.ts @@ -0,0 +1,37 @@ +import { Component } from '@angular/core'; + +import { Injectable } from '@angular/core'; +import {Headers, Http, RequestOptions, ResponseContentType} from '@angular/http'; + +import { meerkat } from "./bundle.js"; +import {Observable} from "rxjs/Observable"; +import 'rxjs/add/operator/catch'; +import 'rxjs/add/operator/map'; + + @Injectable() + export class BBService { + private headers = new Headers({'Content-Type': 'application/x-protobuf'}); + private bbUrl = 'http://localhost:8081/bbserver'; // URL to web api + private statusPath = '/status'; + + constructor(private http: Http) { } + + getStatus(): Observable { + let options = new RequestOptions({ + responseType: ResponseContentType.ArrayBuffer + }); + + let res = this.http.get(this.bbUrl + this.statusPath, options); + + return res + .catch(this.handleError) + .map(x => { + return meerkat.ServerStatus.decode(new Uint8Array(x.arrayBuffer())); + }); + } + + private handleError(error: any): Promise { + console.error('An error occurred', error); // for demo purposes only + return Promise.reject(error.message || error); + } + } diff --git a/bulletin-board-server-frontend/src/app/bundle.d.ts b/bulletin-board-server-frontend/src/app/bundle.d.ts new file mode 100644 index 0000000..1b8f4fa --- /dev/null +++ b/bulletin-board-server-frontend/src/app/bundle.d.ts @@ -0,0 +1,7527 @@ +import * as $protobuf from "protobufjs"; +import '@types/long'; + +/** Namespace meerkat. */ +export namespace meerkat { + + /** Properties of a UIAnswer. */ + interface IUIAnswer { + + /** UIAnswer answer */ + answer?: Uint8Array; + + /** UIAnswer description */ + description?: string; + } + + /** Represents a UIAnswer. */ + class UIAnswer { + + /** + * Constructs a new UIAnswer. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IUIAnswer); + + /** UIAnswer answer. */ + public answer: Uint8Array; + + /** UIAnswer description. */ + public description: string; + + /** + * Creates a new UIAnswer instance using the specified properties. + * @param [properties] Properties to set + * @returns UIAnswer instance + */ + public static create(properties?: meerkat.IUIAnswer): meerkat.UIAnswer; + + /** + * Encodes the specified UIAnswer message. Does not implicitly {@link meerkat.UIAnswer.verify|verify} messages. + * @param message UIAnswer message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IUIAnswer, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified UIAnswer message, length delimited. Does not implicitly {@link meerkat.UIAnswer.verify|verify} messages. + * @param message UIAnswer message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IUIAnswer, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a UIAnswer message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns UIAnswer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.UIAnswer; + + /** + * Decodes a UIAnswer message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns UIAnswer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.UIAnswer; + + /** + * Verifies a UIAnswer message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a UIAnswer message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns UIAnswer + */ + public static fromObject(object: { [k: string]: any }): meerkat.UIAnswer; + + /** + * Creates a plain object from a UIAnswer message. Also converts values to other types if specified. + * @param message UIAnswer + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.UIAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this UIAnswer to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ListOfAnswers. */ + interface IListOfAnswers { + + /** ListOfAnswers answers */ + answers?: meerkat.IUIAnswer[]; + } + + /** Represents a ListOfAnswers. */ + class ListOfAnswers { + + /** + * Constructs a new ListOfAnswers. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IListOfAnswers); + + /** ListOfAnswers answers. */ + public answers: meerkat.IUIAnswer[]; + + /** + * Creates a new ListOfAnswers instance using the specified properties. + * @param [properties] Properties to set + * @returns ListOfAnswers instance + */ + public static create(properties?: meerkat.IListOfAnswers): meerkat.ListOfAnswers; + + /** + * Encodes the specified ListOfAnswers message. Does not implicitly {@link meerkat.ListOfAnswers.verify|verify} messages. + * @param message ListOfAnswers message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IListOfAnswers, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListOfAnswers message, length delimited. Does not implicitly {@link meerkat.ListOfAnswers.verify|verify} messages. + * @param message ListOfAnswers message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IListOfAnswers, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListOfAnswers message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListOfAnswers + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ListOfAnswers; + + /** + * Decodes a ListOfAnswers message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListOfAnswers + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ListOfAnswers; + + /** + * Verifies a ListOfAnswers message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ListOfAnswers message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListOfAnswers + */ + public static fromObject(object: { [k: string]: any }): meerkat.ListOfAnswers; + + /** + * Creates a plain object from a ListOfAnswers message. Also converts values to other types if specified. + * @param message ListOfAnswers + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.ListOfAnswers, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListOfAnswers to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a UIAnswers. */ + interface IUIAnswers { + + /** UIAnswers AnswersType */ + AnswersType?: number; + + /** UIAnswers answers */ + answers?: meerkat.IListOfAnswers; + } + + /** Represents a UIAnswers. */ + class UIAnswers { + + /** + * Constructs a new UIAnswers. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IUIAnswers); + + /** UIAnswers AnswersType. */ + public AnswersType: number; + + /** UIAnswers answers. */ + public answers?: (meerkat.IListOfAnswers|null); + + /** + * Creates a new UIAnswers instance using the specified properties. + * @param [properties] Properties to set + * @returns UIAnswers instance + */ + public static create(properties?: meerkat.IUIAnswers): meerkat.UIAnswers; + + /** + * Encodes the specified UIAnswers message. Does not implicitly {@link meerkat.UIAnswers.verify|verify} messages. + * @param message UIAnswers message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IUIAnswers, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified UIAnswers message, length delimited. Does not implicitly {@link meerkat.UIAnswers.verify|verify} messages. + * @param message UIAnswers message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IUIAnswers, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a UIAnswers message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns UIAnswers + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.UIAnswers; + + /** + * Decodes a UIAnswers message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns UIAnswers + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.UIAnswers; + + /** + * Verifies a UIAnswers message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a UIAnswers message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns UIAnswers + */ + public static fromObject(object: { [k: string]: any }): meerkat.UIAnswers; + + /** + * Creates a plain object from a UIAnswers message. Also converts values to other types if specified. + * @param message UIAnswers + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.UIAnswers, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this UIAnswers to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a Question. */ + interface IQuestion { + + /** Question question */ + question?: Uint8Array; + } + + /** Represents a Question. */ + class Question { + + /** + * Constructs a new Question. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IQuestion); + + /** Question question. */ + public question: Uint8Array; + + /** + * Creates a new Question instance using the specified properties. + * @param [properties] Properties to set + * @returns Question instance + */ + public static create(properties?: meerkat.IQuestion): meerkat.Question; + + /** + * Encodes the specified Question message. Does not implicitly {@link meerkat.Question.verify|verify} messages. + * @param message Question message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IQuestion, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Question message, length delimited. Does not implicitly {@link meerkat.Question.verify|verify} messages. + * @param message Question message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IQuestion, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Question message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Question + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Question; + + /** + * Decodes a Question message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Question + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Question; + + /** + * Verifies a Question message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Question message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Question + */ + public static fromObject(object: { [k: string]: any }): meerkat.Question; + + /** + * Creates a plain object from a Question message. Also converts values to other types if specified. + * @param message Question + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Question, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Question to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a UIQuestion. */ + interface IUIQuestion { + + /** UIQuestion QuestionType */ + QuestionType?: number; + + /** UIQuestion question */ + question?: meerkat.IQuestion; + } + + /** Represents a UIQuestion. */ + class UIQuestion { + + /** + * Constructs a new UIQuestion. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IUIQuestion); + + /** UIQuestion QuestionType. */ + public QuestionType: number; + + /** UIQuestion question. */ + public question?: (meerkat.IQuestion|null); + + /** + * Creates a new UIQuestion instance using the specified properties. + * @param [properties] Properties to set + * @returns UIQuestion instance + */ + public static create(properties?: meerkat.IUIQuestion): meerkat.UIQuestion; + + /** + * Encodes the specified UIQuestion message. Does not implicitly {@link meerkat.UIQuestion.verify|verify} messages. + * @param message UIQuestion message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IUIQuestion, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified UIQuestion message, length delimited. Does not implicitly {@link meerkat.UIQuestion.verify|verify} messages. + * @param message UIQuestion message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IUIQuestion, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a UIQuestion message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns UIQuestion + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.UIQuestion; + + /** + * Decodes a UIQuestion message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns UIQuestion + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.UIQuestion; + + /** + * Verifies a UIQuestion message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a UIQuestion message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns UIQuestion + */ + public static fromObject(object: { [k: string]: any }): meerkat.UIQuestion; + + /** + * Creates a plain object from a UIQuestion message. Also converts values to other types if specified. + * @param message UIQuestion + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.UIQuestion, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this UIQuestion to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BallotQuestionUIElement. */ + interface IBallotQuestionUIElement { + + /** BallotQuestionUIElement answers */ + answers?: meerkat.IUIAnswers; + + /** BallotQuestionUIElement RandomizeListOrder */ + RandomizeListOrder?: boolean; + + /** BallotQuestionUIElement question */ + question?: meerkat.IUIQuestion; + } + + /** Represents a BallotQuestionUIElement. */ + class BallotQuestionUIElement { + + /** + * Constructs a new BallotQuestionUIElement. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBallotQuestionUIElement); + + /** BallotQuestionUIElement answers. */ + public answers?: (meerkat.IUIAnswers|null); + + /** BallotQuestionUIElement RandomizeListOrder. */ + public RandomizeListOrder: boolean; + + /** BallotQuestionUIElement question. */ + public question?: (meerkat.IUIQuestion|null); + + /** + * Creates a new BallotQuestionUIElement instance using the specified properties. + * @param [properties] Properties to set + * @returns BallotQuestionUIElement instance + */ + public static create(properties?: meerkat.IBallotQuestionUIElement): meerkat.BallotQuestionUIElement; + + /** + * Encodes the specified BallotQuestionUIElement message. Does not implicitly {@link meerkat.BallotQuestionUIElement.verify|verify} messages. + * @param message BallotQuestionUIElement message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBallotQuestionUIElement, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BallotQuestionUIElement message, length delimited. Does not implicitly {@link meerkat.BallotQuestionUIElement.verify|verify} messages. + * @param message BallotQuestionUIElement message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBallotQuestionUIElement, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BallotQuestionUIElement message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BallotQuestionUIElement + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BallotQuestionUIElement; + + /** + * Decodes a BallotQuestionUIElement message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BallotQuestionUIElement + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BallotQuestionUIElement; + + /** + * Verifies a BallotQuestionUIElement message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BallotQuestionUIElement message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BallotQuestionUIElement + */ + public static fromObject(object: { [k: string]: any }): meerkat.BallotQuestionUIElement; + + /** + * Creates a plain object from a BallotQuestionUIElement message. Also converts values to other types if specified. + * @param message BallotQuestionUIElement + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BallotQuestionUIElement, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BallotQuestionUIElement to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BallotQuestionsUIElements. */ + interface IBallotQuestionsUIElements { + + /** BallotQuestionsUIElements questions */ + questions?: meerkat.IBallotQuestionUIElement[]; + } + + /** Represents a BallotQuestionsUIElements. */ + class BallotQuestionsUIElements { + + /** + * Constructs a new BallotQuestionsUIElements. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBallotQuestionsUIElements); + + /** BallotQuestionsUIElements questions. */ + public questions: meerkat.IBallotQuestionUIElement[]; + + /** + * Creates a new BallotQuestionsUIElements instance using the specified properties. + * @param [properties] Properties to set + * @returns BallotQuestionsUIElements instance + */ + public static create(properties?: meerkat.IBallotQuestionsUIElements): meerkat.BallotQuestionsUIElements; + + /** + * Encodes the specified BallotQuestionsUIElements message. Does not implicitly {@link meerkat.BallotQuestionsUIElements.verify|verify} messages. + * @param message BallotQuestionsUIElements message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBallotQuestionsUIElements, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BallotQuestionsUIElements message, length delimited. Does not implicitly {@link meerkat.BallotQuestionsUIElements.verify|verify} messages. + * @param message BallotQuestionsUIElements message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBallotQuestionsUIElements, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BallotQuestionsUIElements message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BallotQuestionsUIElements + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BallotQuestionsUIElements; + + /** + * Decodes a BallotQuestionsUIElements message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BallotQuestionsUIElements + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BallotQuestionsUIElements; + + /** + * Verifies a BallotQuestionsUIElements message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BallotQuestionsUIElements message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BallotQuestionsUIElements + */ + public static fromObject(object: { [k: string]: any }): meerkat.BallotQuestionsUIElements; + + /** + * Creates a plain object from a BallotQuestionsUIElements message. Also converts values to other types if specified. + * @param message BallotQuestionsUIElements + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BallotQuestionsUIElements, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BallotQuestionsUIElements to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** ValueType enum. */ + enum ValueType { + TEXT_TYPE = 0, + AUDIO_TYPE = 1, + IMAGE_TYPE = 2 + } + + /** Properties of a BoolMsg. */ + interface IBoolMsg { + + /** BoolMsg value */ + value?: boolean; + } + + /** Represents a BoolMsg. */ + class BoolMsg { + + /** + * Constructs a new BoolMsg. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBoolMsg); + + /** BoolMsg value. */ + public value: boolean; + + /** + * Creates a new BoolMsg instance using the specified properties. + * @param [properties] Properties to set + * @returns BoolMsg instance + */ + public static create(properties?: meerkat.IBoolMsg): meerkat.BoolMsg; + + /** + * Encodes the specified BoolMsg message. Does not implicitly {@link meerkat.BoolMsg.verify|verify} messages. + * @param message BoolMsg message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBoolMsg, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BoolMsg message, length delimited. Does not implicitly {@link meerkat.BoolMsg.verify|verify} messages. + * @param message BoolMsg message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBoolMsg, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BoolMsg message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BoolMsg + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BoolMsg; + + /** + * Decodes a BoolMsg message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BoolMsg + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BoolMsg; + + /** + * Verifies a BoolMsg message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BoolMsg message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BoolMsg + */ + public static fromObject(object: { [k: string]: any }): meerkat.BoolMsg; + + /** + * Creates a plain object from a BoolMsg message. Also converts values to other types if specified. + * @param message BoolMsg + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BoolMsg, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BoolMsg to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an IntMsg. */ + interface IIntMsg { + + /** IntMsg value */ + value?: number; + } + + /** Represents an IntMsg. */ + class IntMsg { + + /** + * Constructs a new IntMsg. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IIntMsg); + + /** IntMsg value. */ + public value: number; + + /** + * Creates a new IntMsg instance using the specified properties. + * @param [properties] Properties to set + * @returns IntMsg instance + */ + public static create(properties?: meerkat.IIntMsg): meerkat.IntMsg; + + /** + * Encodes the specified IntMsg message. Does not implicitly {@link meerkat.IntMsg.verify|verify} messages. + * @param message IntMsg message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IIntMsg, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified IntMsg message, length delimited. Does not implicitly {@link meerkat.IntMsg.verify|verify} messages. + * @param message IntMsg message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IIntMsg, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an IntMsg message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns IntMsg + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.IntMsg; + + /** + * Decodes an IntMsg message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns IntMsg + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.IntMsg; + + /** + * Verifies an IntMsg message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an IntMsg message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns IntMsg + */ + public static fromObject(object: { [k: string]: any }): meerkat.IntMsg; + + /** + * Creates a plain object from an IntMsg message. Also converts values to other types if specified. + * @param message IntMsg + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.IntMsg, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this IntMsg to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a MessageID. */ + interface IMessageID { + + /** MessageID ID */ + ID?: Uint8Array; + } + + /** Represents a MessageID. */ + class MessageID { + + /** + * Constructs a new MessageID. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IMessageID); + + /** MessageID ID. */ + public ID: Uint8Array; + + /** + * Creates a new MessageID instance using the specified properties. + * @param [properties] Properties to set + * @returns MessageID instance + */ + public static create(properties?: meerkat.IMessageID): meerkat.MessageID; + + /** + * Encodes the specified MessageID message. Does not implicitly {@link meerkat.MessageID.verify|verify} messages. + * @param message MessageID message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IMessageID, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MessageID message, length delimited. Does not implicitly {@link meerkat.MessageID.verify|verify} messages. + * @param message MessageID message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IMessageID, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MessageID message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MessageID + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.MessageID; + + /** + * Decodes a MessageID message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MessageID + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.MessageID; + + /** + * Verifies a MessageID message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a MessageID message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MessageID + */ + public static fromObject(object: { [k: string]: any }): meerkat.MessageID; + + /** + * Creates a plain object from a MessageID message. Also converts values to other types if specified. + * @param message MessageID + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.MessageID, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MessageID to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an UnsignedBulletinBoardMessage. */ + interface IUnsignedBulletinBoardMessage { + + /** UnsignedBulletinBoardMessage tag */ + tag?: string[]; + + /** UnsignedBulletinBoardMessage timestamp */ + timestamp?: google.protobuf.ITimestamp; + + /** UnsignedBulletinBoardMessage msgId */ + msgId?: Uint8Array; + + /** UnsignedBulletinBoardMessage data */ + data?: Uint8Array; + } + + /** Represents an UnsignedBulletinBoardMessage. */ + class UnsignedBulletinBoardMessage { + + /** + * Constructs a new UnsignedBulletinBoardMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IUnsignedBulletinBoardMessage); + + /** UnsignedBulletinBoardMessage tag. */ + public tag: string[]; + + /** UnsignedBulletinBoardMessage timestamp. */ + public timestamp?: (google.protobuf.ITimestamp|null); + + /** UnsignedBulletinBoardMessage msgId. */ + public msgId: Uint8Array; + + /** UnsignedBulletinBoardMessage data. */ + public data: Uint8Array; + + /** UnsignedBulletinBoardMessage dataType. */ + public dataType?: string; + + /** + * Creates a new UnsignedBulletinBoardMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns UnsignedBulletinBoardMessage instance + */ + public static create(properties?: meerkat.IUnsignedBulletinBoardMessage): meerkat.UnsignedBulletinBoardMessage; + + /** + * Encodes the specified UnsignedBulletinBoardMessage message. Does not implicitly {@link meerkat.UnsignedBulletinBoardMessage.verify|verify} messages. + * @param message UnsignedBulletinBoardMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IUnsignedBulletinBoardMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified UnsignedBulletinBoardMessage message, length delimited. Does not implicitly {@link meerkat.UnsignedBulletinBoardMessage.verify|verify} messages. + * @param message UnsignedBulletinBoardMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IUnsignedBulletinBoardMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an UnsignedBulletinBoardMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns UnsignedBulletinBoardMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.UnsignedBulletinBoardMessage; + + /** + * Decodes an UnsignedBulletinBoardMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns UnsignedBulletinBoardMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.UnsignedBulletinBoardMessage; + + /** + * Verifies an UnsignedBulletinBoardMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an UnsignedBulletinBoardMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns UnsignedBulletinBoardMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.UnsignedBulletinBoardMessage; + + /** + * Creates a plain object from an UnsignedBulletinBoardMessage message. Also converts values to other types if specified. + * @param message UnsignedBulletinBoardMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.UnsignedBulletinBoardMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this UnsignedBulletinBoardMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BulletinBoardMessage. */ + interface IBulletinBoardMessage { + + /** BulletinBoardMessage entryNum */ + entryNum?: (number|Long); + + /** BulletinBoardMessage msg */ + msg?: meerkat.IUnsignedBulletinBoardMessage; + + /** BulletinBoardMessage sig */ + sig?: meerkat.ISignature[]; + } + + /** Represents a BulletinBoardMessage. */ + class BulletinBoardMessage { + + /** + * Constructs a new BulletinBoardMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBulletinBoardMessage); + + /** BulletinBoardMessage entryNum. */ + public entryNum: (number|Long); + + /** BulletinBoardMessage msg. */ + public msg?: (meerkat.IUnsignedBulletinBoardMessage|null); + + /** BulletinBoardMessage sig. */ + public sig: meerkat.ISignature[]; + + /** + * Creates a new BulletinBoardMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns BulletinBoardMessage instance + */ + public static create(properties?: meerkat.IBulletinBoardMessage): meerkat.BulletinBoardMessage; + + /** + * Encodes the specified BulletinBoardMessage message. Does not implicitly {@link meerkat.BulletinBoardMessage.verify|verify} messages. + * @param message BulletinBoardMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBulletinBoardMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BulletinBoardMessage message, length delimited. Does not implicitly {@link meerkat.BulletinBoardMessage.verify|verify} messages. + * @param message BulletinBoardMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBulletinBoardMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BulletinBoardMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BulletinBoardMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BulletinBoardMessage; + + /** + * Decodes a BulletinBoardMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BulletinBoardMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BulletinBoardMessage; + + /** + * Verifies a BulletinBoardMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BulletinBoardMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BulletinBoardMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.BulletinBoardMessage; + + /** + * Creates a plain object from a BulletinBoardMessage message. Also converts values to other types if specified. + * @param message BulletinBoardMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BulletinBoardMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BulletinBoardMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BulletinBoardMessageList. */ + interface IBulletinBoardMessageList { + + /** BulletinBoardMessageList message */ + message?: meerkat.IBulletinBoardMessage[]; + } + + /** Represents a BulletinBoardMessageList. */ + class BulletinBoardMessageList { + + /** + * Constructs a new BulletinBoardMessageList. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBulletinBoardMessageList); + + /** BulletinBoardMessageList message. */ + public message: meerkat.IBulletinBoardMessage[]; + + /** + * Creates a new BulletinBoardMessageList instance using the specified properties. + * @param [properties] Properties to set + * @returns BulletinBoardMessageList instance + */ + public static create(properties?: meerkat.IBulletinBoardMessageList): meerkat.BulletinBoardMessageList; + + /** + * Encodes the specified BulletinBoardMessageList message. Does not implicitly {@link meerkat.BulletinBoardMessageList.verify|verify} messages. + * @param message BulletinBoardMessageList message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBulletinBoardMessageList, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BulletinBoardMessageList message, length delimited. Does not implicitly {@link meerkat.BulletinBoardMessageList.verify|verify} messages. + * @param message BulletinBoardMessageList message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBulletinBoardMessageList, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BulletinBoardMessageList message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BulletinBoardMessageList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BulletinBoardMessageList; + + /** + * Decodes a BulletinBoardMessageList message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BulletinBoardMessageList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BulletinBoardMessageList; + + /** + * Verifies a BulletinBoardMessageList message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BulletinBoardMessageList message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BulletinBoardMessageList + */ + public static fromObject(object: { [k: string]: any }): meerkat.BulletinBoardMessageList; + + /** + * Creates a plain object from a BulletinBoardMessageList message. Also converts values to other types if specified. + * @param message BulletinBoardMessageList + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BulletinBoardMessageList, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BulletinBoardMessageList to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** FilterType enum. */ + enum FilterType { + MSG_ID = 0, + EXACT_ENTRY = 1, + MAX_ENTRY = 2, + MIN_ENTRY = 3, + SIGNER_ID = 4, + TAG = 5, + AFTER_TIME = 6, + BEFORE_TIME = 7, + MAX_MESSAGES = 8 + } + + /** Properties of a MessageFilter. */ + interface IMessageFilter { + + /** MessageFilter type */ + type?: meerkat.FilterType; + + /** MessageFilter id */ + id?: Uint8Array; + + /** MessageFilter entry */ + entry?: (number|Long); + + /** MessageFilter tag */ + tag?: string; + + /** MessageFilter maxMessages */ + maxMessages?: (number|Long); + + /** MessageFilter timestamp */ + timestamp?: google.protobuf.ITimestamp; + } + + /** Represents a MessageFilter. */ + class MessageFilter { + + /** + * Constructs a new MessageFilter. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IMessageFilter); + + /** MessageFilter type. */ + public type: meerkat.FilterType; + + /** MessageFilter id. */ + public id: Uint8Array; + + /** MessageFilter entry. */ + public entry: (number|Long); + + /** MessageFilter tag. */ + public tag: string; + + /** MessageFilter maxMessages. */ + public maxMessages: (number|Long); + + /** MessageFilter timestamp. */ + public timestamp?: (google.protobuf.ITimestamp|null); + + /** MessageFilter filter. */ + public filter?: string; + + /** + * Creates a new MessageFilter instance using the specified properties. + * @param [properties] Properties to set + * @returns MessageFilter instance + */ + public static create(properties?: meerkat.IMessageFilter): meerkat.MessageFilter; + + /** + * Encodes the specified MessageFilter message. Does not implicitly {@link meerkat.MessageFilter.verify|verify} messages. + * @param message MessageFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IMessageFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MessageFilter message, length delimited. Does not implicitly {@link meerkat.MessageFilter.verify|verify} messages. + * @param message MessageFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IMessageFilter, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MessageFilter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MessageFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.MessageFilter; + + /** + * Decodes a MessageFilter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MessageFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.MessageFilter; + + /** + * Verifies a MessageFilter message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a MessageFilter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MessageFilter + */ + public static fromObject(object: { [k: string]: any }): meerkat.MessageFilter; + + /** + * Creates a plain object from a MessageFilter message. Also converts values to other types if specified. + * @param message MessageFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.MessageFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MessageFilter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a MessageFilterList. */ + interface IMessageFilterList { + + /** MessageFilterList filter */ + filter?: meerkat.IMessageFilter[]; + } + + /** Represents a MessageFilterList. */ + class MessageFilterList { + + /** + * Constructs a new MessageFilterList. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IMessageFilterList); + + /** MessageFilterList filter. */ + public filter: meerkat.IMessageFilter[]; + + /** + * Creates a new MessageFilterList instance using the specified properties. + * @param [properties] Properties to set + * @returns MessageFilterList instance + */ + public static create(properties?: meerkat.IMessageFilterList): meerkat.MessageFilterList; + + /** + * Encodes the specified MessageFilterList message. Does not implicitly {@link meerkat.MessageFilterList.verify|verify} messages. + * @param message MessageFilterList message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IMessageFilterList, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MessageFilterList message, length delimited. Does not implicitly {@link meerkat.MessageFilterList.verify|verify} messages. + * @param message MessageFilterList message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IMessageFilterList, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MessageFilterList message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MessageFilterList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.MessageFilterList; + + /** + * Decodes a MessageFilterList message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MessageFilterList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.MessageFilterList; + + /** + * Verifies a MessageFilterList message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a MessageFilterList message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MessageFilterList + */ + public static fromObject(object: { [k: string]: any }): meerkat.MessageFilterList; + + /** + * Creates a plain object from a MessageFilterList message. Also converts values to other types if specified. + * @param message MessageFilterList + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.MessageFilterList, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MessageFilterList to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BeginBatchMessage. */ + interface IBeginBatchMessage { + + /** BeginBatchMessage tag */ + tag?: string[]; + } + + /** Represents a BeginBatchMessage. */ + class BeginBatchMessage { + + /** + * Constructs a new BeginBatchMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBeginBatchMessage); + + /** BeginBatchMessage tag. */ + public tag: string[]; + + /** + * Creates a new BeginBatchMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns BeginBatchMessage instance + */ + public static create(properties?: meerkat.IBeginBatchMessage): meerkat.BeginBatchMessage; + + /** + * Encodes the specified BeginBatchMessage message. Does not implicitly {@link meerkat.BeginBatchMessage.verify|verify} messages. + * @param message BeginBatchMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBeginBatchMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BeginBatchMessage message, length delimited. Does not implicitly {@link meerkat.BeginBatchMessage.verify|verify} messages. + * @param message BeginBatchMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBeginBatchMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BeginBatchMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BeginBatchMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BeginBatchMessage; + + /** + * Decodes a BeginBatchMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BeginBatchMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BeginBatchMessage; + + /** + * Verifies a BeginBatchMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BeginBatchMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BeginBatchMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.BeginBatchMessage; + + /** + * Creates a plain object from a BeginBatchMessage message. Also converts values to other types if specified. + * @param message BeginBatchMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BeginBatchMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BeginBatchMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a CloseBatchMessage. */ + interface ICloseBatchMessage { + + /** CloseBatchMessage batchId */ + batchId?: (number|Long); + + /** CloseBatchMessage batchLength */ + batchLength?: number; + + /** CloseBatchMessage timestamp */ + timestamp?: google.protobuf.ITimestamp; + + /** CloseBatchMessage sig */ + sig?: meerkat.ISignature[]; + } + + /** Represents a CloseBatchMessage. */ + class CloseBatchMessage { + + /** + * Constructs a new CloseBatchMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.ICloseBatchMessage); + + /** CloseBatchMessage batchId. */ + public batchId: (number|Long); + + /** CloseBatchMessage batchLength. */ + public batchLength: number; + + /** CloseBatchMessage timestamp. */ + public timestamp?: (google.protobuf.ITimestamp|null); + + /** CloseBatchMessage sig. */ + public sig: meerkat.ISignature[]; + + /** + * Creates a new CloseBatchMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns CloseBatchMessage instance + */ + public static create(properties?: meerkat.ICloseBatchMessage): meerkat.CloseBatchMessage; + + /** + * Encodes the specified CloseBatchMessage message. Does not implicitly {@link meerkat.CloseBatchMessage.verify|verify} messages. + * @param message CloseBatchMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.ICloseBatchMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CloseBatchMessage message, length delimited. Does not implicitly {@link meerkat.CloseBatchMessage.verify|verify} messages. + * @param message CloseBatchMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.ICloseBatchMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CloseBatchMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CloseBatchMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.CloseBatchMessage; + + /** + * Decodes a CloseBatchMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CloseBatchMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.CloseBatchMessage; + + /** + * Verifies a CloseBatchMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CloseBatchMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CloseBatchMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.CloseBatchMessage; + + /** + * Creates a plain object from a CloseBatchMessage message. Also converts values to other types if specified. + * @param message CloseBatchMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.CloseBatchMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CloseBatchMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BatchChunk. */ + interface IBatchChunk { + + /** BatchChunk data */ + data?: Uint8Array; + } + + /** Represents a BatchChunk. */ + class BatchChunk { + + /** + * Constructs a new BatchChunk. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBatchChunk); + + /** BatchChunk data. */ + public data: Uint8Array; + + /** + * Creates a new BatchChunk instance using the specified properties. + * @param [properties] Properties to set + * @returns BatchChunk instance + */ + public static create(properties?: meerkat.IBatchChunk): meerkat.BatchChunk; + + /** + * Encodes the specified BatchChunk message. Does not implicitly {@link meerkat.BatchChunk.verify|verify} messages. + * @param message BatchChunk message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBatchChunk, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BatchChunk message, length delimited. Does not implicitly {@link meerkat.BatchChunk.verify|verify} messages. + * @param message BatchChunk message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBatchChunk, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BatchChunk message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BatchChunk + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BatchChunk; + + /** + * Decodes a BatchChunk message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BatchChunk + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BatchChunk; + + /** + * Verifies a BatchChunk message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BatchChunk message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BatchChunk + */ + public static fromObject(object: { [k: string]: any }): meerkat.BatchChunk; + + /** + * Creates a plain object from a BatchChunk message. Also converts values to other types if specified. + * @param message BatchChunk + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BatchChunk, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BatchChunk to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BatchChunkList. */ + interface IBatchChunkList { + + /** BatchChunkList data */ + data?: meerkat.IBatchChunk[]; + } + + /** Represents a BatchChunkList. */ + class BatchChunkList { + + /** + * Constructs a new BatchChunkList. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBatchChunkList); + + /** BatchChunkList data. */ + public data: meerkat.IBatchChunk[]; + + /** + * Creates a new BatchChunkList instance using the specified properties. + * @param [properties] Properties to set + * @returns BatchChunkList instance + */ + public static create(properties?: meerkat.IBatchChunkList): meerkat.BatchChunkList; + + /** + * Encodes the specified BatchChunkList message. Does not implicitly {@link meerkat.BatchChunkList.verify|verify} messages. + * @param message BatchChunkList message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBatchChunkList, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BatchChunkList message, length delimited. Does not implicitly {@link meerkat.BatchChunkList.verify|verify} messages. + * @param message BatchChunkList message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBatchChunkList, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BatchChunkList message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BatchChunkList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BatchChunkList; + + /** + * Decodes a BatchChunkList message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BatchChunkList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BatchChunkList; + + /** + * Verifies a BatchChunkList message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BatchChunkList message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BatchChunkList + */ + public static fromObject(object: { [k: string]: any }): meerkat.BatchChunkList; + + /** + * Creates a plain object from a BatchChunkList message. Also converts values to other types if specified. + * @param message BatchChunkList + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BatchChunkList, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BatchChunkList to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BatchMessage. */ + interface IBatchMessage { + + /** BatchMessage batchId */ + batchId?: (number|Long); + + /** BatchMessage serialNum */ + serialNum?: number; + + /** BatchMessage data */ + data?: meerkat.IBatchChunk; + } + + /** Represents a BatchMessage. */ + class BatchMessage { + + /** + * Constructs a new BatchMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBatchMessage); + + /** BatchMessage batchId. */ + public batchId: (number|Long); + + /** BatchMessage serialNum. */ + public serialNum: number; + + /** BatchMessage data. */ + public data?: (meerkat.IBatchChunk|null); + + /** + * Creates a new BatchMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns BatchMessage instance + */ + public static create(properties?: meerkat.IBatchMessage): meerkat.BatchMessage; + + /** + * Encodes the specified BatchMessage message. Does not implicitly {@link meerkat.BatchMessage.verify|verify} messages. + * @param message BatchMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBatchMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BatchMessage message, length delimited. Does not implicitly {@link meerkat.BatchMessage.verify|verify} messages. + * @param message BatchMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBatchMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BatchMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BatchMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BatchMessage; + + /** + * Decodes a BatchMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BatchMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BatchMessage; + + /** + * Verifies a BatchMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BatchMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BatchMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.BatchMessage; + + /** + * Creates a plain object from a BatchMessage message. Also converts values to other types if specified. + * @param message BatchMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BatchMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BatchMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a SingleSyncQuery. */ + interface ISingleSyncQuery { + + /** SingleSyncQuery timeOfSync */ + timeOfSync?: google.protobuf.ITimestamp; + + /** SingleSyncQuery checksum */ + checksum?: (number|Long); + } + + /** Represents a SingleSyncQuery. */ + class SingleSyncQuery { + + /** + * Constructs a new SingleSyncQuery. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.ISingleSyncQuery); + + /** SingleSyncQuery timeOfSync. */ + public timeOfSync?: (google.protobuf.ITimestamp|null); + + /** SingleSyncQuery checksum. */ + public checksum: (number|Long); + + /** + * Creates a new SingleSyncQuery instance using the specified properties. + * @param [properties] Properties to set + * @returns SingleSyncQuery instance + */ + public static create(properties?: meerkat.ISingleSyncQuery): meerkat.SingleSyncQuery; + + /** + * Encodes the specified SingleSyncQuery message. Does not implicitly {@link meerkat.SingleSyncQuery.verify|verify} messages. + * @param message SingleSyncQuery message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.ISingleSyncQuery, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SingleSyncQuery message, length delimited. Does not implicitly {@link meerkat.SingleSyncQuery.verify|verify} messages. + * @param message SingleSyncQuery message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.ISingleSyncQuery, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SingleSyncQuery message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SingleSyncQuery + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SingleSyncQuery; + + /** + * Decodes a SingleSyncQuery message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SingleSyncQuery + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SingleSyncQuery; + + /** + * Verifies a SingleSyncQuery message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SingleSyncQuery message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SingleSyncQuery + */ + public static fromObject(object: { [k: string]: any }): meerkat.SingleSyncQuery; + + /** + * Creates a plain object from a SingleSyncQuery message. Also converts values to other types if specified. + * @param message SingleSyncQuery + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.SingleSyncQuery, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SingleSyncQuery to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a SyncQuery. */ + interface ISyncQuery { + + /** SyncQuery filterList */ + filterList?: meerkat.IMessageFilterList; + + /** SyncQuery query */ + query?: meerkat.ISingleSyncQuery[]; + } + + /** Represents a SyncQuery. */ + class SyncQuery { + + /** + * Constructs a new SyncQuery. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.ISyncQuery); + + /** SyncQuery filterList. */ + public filterList?: (meerkat.IMessageFilterList|null); + + /** SyncQuery query. */ + public query: meerkat.ISingleSyncQuery[]; + + /** + * Creates a new SyncQuery instance using the specified properties. + * @param [properties] Properties to set + * @returns SyncQuery instance + */ + public static create(properties?: meerkat.ISyncQuery): meerkat.SyncQuery; + + /** + * Encodes the specified SyncQuery message. Does not implicitly {@link meerkat.SyncQuery.verify|verify} messages. + * @param message SyncQuery message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.ISyncQuery, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SyncQuery message, length delimited. Does not implicitly {@link meerkat.SyncQuery.verify|verify} messages. + * @param message SyncQuery message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.ISyncQuery, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SyncQuery message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SyncQuery + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SyncQuery; + + /** + * Decodes a SyncQuery message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SyncQuery + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SyncQuery; + + /** + * Verifies a SyncQuery message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SyncQuery message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SyncQuery + */ + public static fromObject(object: { [k: string]: any }): meerkat.SyncQuery; + + /** + * Creates a plain object from a SyncQuery message. Also converts values to other types if specified. + * @param message SyncQuery + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.SyncQuery, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SyncQuery to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a GenerateSyncQueryParams. */ + interface IGenerateSyncQueryParams { + + /** GenerateSyncQueryParams filterList */ + filterList?: meerkat.IMessageFilterList; + + /** GenerateSyncQueryParams breakpointList */ + breakpointList?: number[]; + } + + /** Represents a GenerateSyncQueryParams. */ + class GenerateSyncQueryParams { + + /** + * Constructs a new GenerateSyncQueryParams. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IGenerateSyncQueryParams); + + /** GenerateSyncQueryParams filterList. */ + public filterList?: (meerkat.IMessageFilterList|null); + + /** GenerateSyncQueryParams breakpointList. */ + public breakpointList: number[]; + + /** + * Creates a new GenerateSyncQueryParams instance using the specified properties. + * @param [properties] Properties to set + * @returns GenerateSyncQueryParams instance + */ + public static create(properties?: meerkat.IGenerateSyncQueryParams): meerkat.GenerateSyncQueryParams; + + /** + * Encodes the specified GenerateSyncQueryParams message. Does not implicitly {@link meerkat.GenerateSyncQueryParams.verify|verify} messages. + * @param message GenerateSyncQueryParams message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IGenerateSyncQueryParams, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GenerateSyncQueryParams message, length delimited. Does not implicitly {@link meerkat.GenerateSyncQueryParams.verify|verify} messages. + * @param message GenerateSyncQueryParams message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IGenerateSyncQueryParams, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GenerateSyncQueryParams message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GenerateSyncQueryParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.GenerateSyncQueryParams; + + /** + * Decodes a GenerateSyncQueryParams message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GenerateSyncQueryParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.GenerateSyncQueryParams; + + /** + * Verifies a GenerateSyncQueryParams message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GenerateSyncQueryParams message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GenerateSyncQueryParams + */ + public static fromObject(object: { [k: string]: any }): meerkat.GenerateSyncQueryParams; + + /** + * Creates a plain object from a GenerateSyncQueryParams message. Also converts values to other types if specified. + * @param message GenerateSyncQueryParams + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.GenerateSyncQueryParams, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GenerateSyncQueryParams to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a SyncQueryResponse. */ + interface ISyncQueryResponse { + + /** SyncQueryResponse lastEntryNum */ + lastEntryNum?: (number|Long); + + /** SyncQueryResponse lastTimeOfSync */ + lastTimeOfSync?: google.protobuf.ITimestamp; + } + + /** Represents a SyncQueryResponse. */ + class SyncQueryResponse { + + /** + * Constructs a new SyncQueryResponse. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.ISyncQueryResponse); + + /** SyncQueryResponse lastEntryNum. */ + public lastEntryNum: (number|Long); + + /** SyncQueryResponse lastTimeOfSync. */ + public lastTimeOfSync?: (google.protobuf.ITimestamp|null); + + /** + * Creates a new SyncQueryResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns SyncQueryResponse instance + */ + public static create(properties?: meerkat.ISyncQueryResponse): meerkat.SyncQueryResponse; + + /** + * Encodes the specified SyncQueryResponse message. Does not implicitly {@link meerkat.SyncQueryResponse.verify|verify} messages. + * @param message SyncQueryResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.ISyncQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SyncQueryResponse message, length delimited. Does not implicitly {@link meerkat.SyncQueryResponse.verify|verify} messages. + * @param message SyncQueryResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.ISyncQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SyncQueryResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SyncQueryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SyncQueryResponse; + + /** + * Decodes a SyncQueryResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SyncQueryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SyncQueryResponse; + + /** + * Verifies a SyncQueryResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SyncQueryResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SyncQueryResponse + */ + public static fromObject(object: { [k: string]: any }): meerkat.SyncQueryResponse; + + /** + * Creates a plain object from a SyncQueryResponse message. Also converts values to other types if specified. + * @param message SyncQueryResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.SyncQueryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SyncQueryResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BatchQuery. */ + interface IBatchQuery { + + /** BatchQuery msgID */ + msgID?: meerkat.IMessageID; + + /** BatchQuery startPosition */ + startPosition?: number; + } + + /** Represents a BatchQuery. */ + class BatchQuery { + + /** + * Constructs a new BatchQuery. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBatchQuery); + + /** BatchQuery msgID. */ + public msgID?: (meerkat.IMessageID|null); + + /** BatchQuery startPosition. */ + public startPosition: number; + + /** + * Creates a new BatchQuery instance using the specified properties. + * @param [properties] Properties to set + * @returns BatchQuery instance + */ + public static create(properties?: meerkat.IBatchQuery): meerkat.BatchQuery; + + /** + * Encodes the specified BatchQuery message. Does not implicitly {@link meerkat.BatchQuery.verify|verify} messages. + * @param message BatchQuery message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBatchQuery, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BatchQuery message, length delimited. Does not implicitly {@link meerkat.BatchQuery.verify|verify} messages. + * @param message BatchQuery message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBatchQuery, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BatchQuery message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BatchQuery + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BatchQuery; + + /** + * Decodes a BatchQuery message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BatchQuery + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BatchQuery; + + /** + * Verifies a BatchQuery message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BatchQuery message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BatchQuery + */ + public static fromObject(object: { [k: string]: any }): meerkat.BatchQuery; + + /** + * Creates a plain object from a BatchQuery message. Also converts values to other types if specified. + * @param message BatchQuery + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BatchQuery, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BatchQuery to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ServerStatus. */ + interface IServerStatus { + + /** ServerStatus mode */ + mode?: meerkat.ServerStatus.Mode; + + /** ServerStatus name */ + name?: string; + + /** ServerStatus pk */ + pk?: meerkat.ISignatureVerificationKey; + } + + /** Represents a ServerStatus. */ + class ServerStatus { + + /** + * Constructs a new ServerStatus. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IServerStatus); + + /** ServerStatus mode. */ + public mode: meerkat.ServerStatus.Mode; + + /** ServerStatus name. */ + public name: string; + + /** ServerStatus pk. */ + public pk?: (meerkat.ISignatureVerificationKey|null); + + /** + * Creates a new ServerStatus instance using the specified properties. + * @param [properties] Properties to set + * @returns ServerStatus instance + */ + public static create(properties?: meerkat.IServerStatus): meerkat.ServerStatus; + + /** + * Encodes the specified ServerStatus message. Does not implicitly {@link meerkat.ServerStatus.verify|verify} messages. + * @param message ServerStatus message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IServerStatus, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ServerStatus message, length delimited. Does not implicitly {@link meerkat.ServerStatus.verify|verify} messages. + * @param message ServerStatus message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IServerStatus, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ServerStatus message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ServerStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ServerStatus; + + /** + * Decodes a ServerStatus message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ServerStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ServerStatus; + + /** + * Verifies a ServerStatus message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ServerStatus message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ServerStatus + */ + public static fromObject(object: { [k: string]: any }): meerkat.ServerStatus; + + /** + * Creates a plain object from a ServerStatus message. Also converts values to other types if specified. + * @param message ServerStatus + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.ServerStatus, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ServerStatus to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace ServerStatus { + + /** Mode enum. */ + enum Mode { + MODE_SETUP_AUTH = 0, + MODE_SETUP_DB = 1, + MODE_RUNNING = 2 + } + } + + /** Properties of a BroadcastMessage. */ + interface IBroadcastMessage { + + /** BroadcastMessage sender */ + sender?: number; + + /** BroadcastMessage destination */ + destination?: number; + + /** BroadcastMessage isPrivate */ + isPrivate?: boolean; + + /** BroadcastMessage payload */ + payload?: Uint8Array; + } + + /** Represents a BroadcastMessage. */ + class BroadcastMessage { + + /** + * Constructs a new BroadcastMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBroadcastMessage); + + /** BroadcastMessage sender. */ + public sender: number; + + /** BroadcastMessage destination. */ + public destination: number; + + /** BroadcastMessage isPrivate. */ + public isPrivate: boolean; + + /** BroadcastMessage payload. */ + public payload: Uint8Array; + + /** + * Creates a new BroadcastMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns BroadcastMessage instance + */ + public static create(properties?: meerkat.IBroadcastMessage): meerkat.BroadcastMessage; + + /** + * Encodes the specified BroadcastMessage message. Does not implicitly {@link meerkat.BroadcastMessage.verify|verify} messages. + * @param message BroadcastMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBroadcastMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BroadcastMessage message, length delimited. Does not implicitly {@link meerkat.BroadcastMessage.verify|verify} messages. + * @param message BroadcastMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBroadcastMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BroadcastMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BroadcastMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BroadcastMessage; + + /** + * Decodes a BroadcastMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BroadcastMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BroadcastMessage; + + /** + * Verifies a BroadcastMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BroadcastMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BroadcastMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.BroadcastMessage; + + /** + * Creates a plain object from a BroadcastMessage message. Also converts values to other types if specified. + * @param message BroadcastMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BroadcastMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BroadcastMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an ElGamalPublicKey. */ + interface IElGamalPublicKey { + + /** ElGamalPublicKey subjectPublicKeyInfo */ + subjectPublicKeyInfo?: Uint8Array; + } + + /** Represents an ElGamalPublicKey. */ + class ElGamalPublicKey { + + /** + * Constructs a new ElGamalPublicKey. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IElGamalPublicKey); + + /** ElGamalPublicKey subjectPublicKeyInfo. */ + public subjectPublicKeyInfo: Uint8Array; + + /** + * Creates a new ElGamalPublicKey instance using the specified properties. + * @param [properties] Properties to set + * @returns ElGamalPublicKey instance + */ + public static create(properties?: meerkat.IElGamalPublicKey): meerkat.ElGamalPublicKey; + + /** + * Encodes the specified ElGamalPublicKey message. Does not implicitly {@link meerkat.ElGamalPublicKey.verify|verify} messages. + * @param message ElGamalPublicKey message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IElGamalPublicKey, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ElGamalPublicKey message, length delimited. Does not implicitly {@link meerkat.ElGamalPublicKey.verify|verify} messages. + * @param message ElGamalPublicKey message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IElGamalPublicKey, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ElGamalPublicKey message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ElGamalPublicKey + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ElGamalPublicKey; + + /** + * Decodes an ElGamalPublicKey message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ElGamalPublicKey + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ElGamalPublicKey; + + /** + * Verifies an ElGamalPublicKey message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an ElGamalPublicKey message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ElGamalPublicKey + */ + public static fromObject(object: { [k: string]: any }): meerkat.ElGamalPublicKey; + + /** + * Creates a plain object from an ElGamalPublicKey message. Also converts values to other types if specified. + * @param message ElGamalPublicKey + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.ElGamalPublicKey, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ElGamalPublicKey to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a GroupElement. */ + interface IGroupElement { + + /** GroupElement data */ + data?: Uint8Array; + } + + /** Represents a GroupElement. */ + class GroupElement { + + /** + * Constructs a new GroupElement. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IGroupElement); + + /** GroupElement data. */ + public data: Uint8Array; + + /** + * Creates a new GroupElement instance using the specified properties. + * @param [properties] Properties to set + * @returns GroupElement instance + */ + public static create(properties?: meerkat.IGroupElement): meerkat.GroupElement; + + /** + * Encodes the specified GroupElement message. Does not implicitly {@link meerkat.GroupElement.verify|verify} messages. + * @param message GroupElement message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IGroupElement, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GroupElement message, length delimited. Does not implicitly {@link meerkat.GroupElement.verify|verify} messages. + * @param message GroupElement message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IGroupElement, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GroupElement message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GroupElement + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.GroupElement; + + /** + * Decodes a GroupElement message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GroupElement + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.GroupElement; + + /** + * Verifies a GroupElement message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GroupElement message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GroupElement + */ + public static fromObject(object: { [k: string]: any }): meerkat.GroupElement; + + /** + * Creates a plain object from a GroupElement message. Also converts values to other types if specified. + * @param message GroupElement + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.GroupElement, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GroupElement to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an ElGamalCiphertext. */ + interface IElGamalCiphertext { + + /** ElGamalCiphertext c1 */ + c1?: meerkat.IGroupElement; + + /** ElGamalCiphertext c2 */ + c2?: meerkat.IGroupElement; + } + + /** Represents an ElGamalCiphertext. */ + class ElGamalCiphertext { + + /** + * Constructs a new ElGamalCiphertext. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IElGamalCiphertext); + + /** ElGamalCiphertext c1. */ + public c1?: (meerkat.IGroupElement|null); + + /** ElGamalCiphertext c2. */ + public c2?: (meerkat.IGroupElement|null); + + /** + * Creates a new ElGamalCiphertext instance using the specified properties. + * @param [properties] Properties to set + * @returns ElGamalCiphertext instance + */ + public static create(properties?: meerkat.IElGamalCiphertext): meerkat.ElGamalCiphertext; + + /** + * Encodes the specified ElGamalCiphertext message. Does not implicitly {@link meerkat.ElGamalCiphertext.verify|verify} messages. + * @param message ElGamalCiphertext message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IElGamalCiphertext, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ElGamalCiphertext message, length delimited. Does not implicitly {@link meerkat.ElGamalCiphertext.verify|verify} messages. + * @param message ElGamalCiphertext message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IElGamalCiphertext, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ElGamalCiphertext message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ElGamalCiphertext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ElGamalCiphertext; + + /** + * Decodes an ElGamalCiphertext message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ElGamalCiphertext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ElGamalCiphertext; + + /** + * Verifies an ElGamalCiphertext message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an ElGamalCiphertext message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ElGamalCiphertext + */ + public static fromObject(object: { [k: string]: any }): meerkat.ElGamalCiphertext; + + /** + * Creates a plain object from an ElGamalCiphertext message. Also converts values to other types if specified. + * @param message ElGamalCiphertext + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.ElGamalCiphertext, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ElGamalCiphertext to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** SignatureType enum. */ + enum SignatureType { + ECDSA = 0, + DSA = 1, + RSA = 2 + } + + /** Properties of a BigInteger. */ + interface IBigInteger { + + /** BigInteger data */ + data?: Uint8Array; + } + + /** Represents a BigInteger. */ + class BigInteger { + + /** + * Constructs a new BigInteger. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBigInteger); + + /** BigInteger data. */ + public data: Uint8Array; + + /** + * Creates a new BigInteger instance using the specified properties. + * @param [properties] Properties to set + * @returns BigInteger instance + */ + public static create(properties?: meerkat.IBigInteger): meerkat.BigInteger; + + /** + * Encodes the specified BigInteger message. Does not implicitly {@link meerkat.BigInteger.verify|verify} messages. + * @param message BigInteger message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBigInteger, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BigInteger message, length delimited. Does not implicitly {@link meerkat.BigInteger.verify|verify} messages. + * @param message BigInteger message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBigInteger, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BigInteger message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BigInteger + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BigInteger; + + /** + * Decodes a BigInteger message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BigInteger + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BigInteger; + + /** + * Verifies a BigInteger message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BigInteger message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BigInteger + */ + public static fromObject(object: { [k: string]: any }): meerkat.BigInteger; + + /** + * Creates a plain object from a BigInteger message. Also converts values to other types if specified. + * @param message BigInteger + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BigInteger, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BigInteger to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a Signature. */ + interface ISignature { + + /** Signature type */ + type?: meerkat.SignatureType; + + /** Signature data */ + data?: Uint8Array; + + /** Signature signerId */ + signerId?: Uint8Array; + } + + /** Represents a Signature. */ + class Signature { + + /** + * Constructs a new Signature. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.ISignature); + + /** Signature type. */ + public type: meerkat.SignatureType; + + /** Signature data. */ + public data: Uint8Array; + + /** Signature signerId. */ + public signerId: Uint8Array; + + /** + * Creates a new Signature instance using the specified properties. + * @param [properties] Properties to set + * @returns Signature instance + */ + public static create(properties?: meerkat.ISignature): meerkat.Signature; + + /** + * Encodes the specified Signature message. Does not implicitly {@link meerkat.Signature.verify|verify} messages. + * @param message Signature message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.ISignature, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Signature message, length delimited. Does not implicitly {@link meerkat.Signature.verify|verify} messages. + * @param message Signature message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.ISignature, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Signature message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Signature + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Signature; + + /** + * Decodes a Signature message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Signature + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Signature; + + /** + * Verifies a Signature message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Signature message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Signature + */ + public static fromObject(object: { [k: string]: any }): meerkat.Signature; + + /** + * Creates a plain object from a Signature message. Also converts values to other types if specified. + * @param message Signature + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Signature, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Signature to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a SignatureVerificationKey. */ + interface ISignatureVerificationKey { + + /** SignatureVerificationKey type */ + type?: meerkat.SignatureType; + + /** SignatureVerificationKey data */ + data?: Uint8Array; + } + + /** Represents a SignatureVerificationKey. */ + class SignatureVerificationKey { + + /** + * Constructs a new SignatureVerificationKey. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.ISignatureVerificationKey); + + /** SignatureVerificationKey type. */ + public type: meerkat.SignatureType; + + /** SignatureVerificationKey data. */ + public data: Uint8Array; + + /** + * Creates a new SignatureVerificationKey instance using the specified properties. + * @param [properties] Properties to set + * @returns SignatureVerificationKey instance + */ + public static create(properties?: meerkat.ISignatureVerificationKey): meerkat.SignatureVerificationKey; + + /** + * Encodes the specified SignatureVerificationKey message. Does not implicitly {@link meerkat.SignatureVerificationKey.verify|verify} messages. + * @param message SignatureVerificationKey message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.ISignatureVerificationKey, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SignatureVerificationKey message, length delimited. Does not implicitly {@link meerkat.SignatureVerificationKey.verify|verify} messages. + * @param message SignatureVerificationKey message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.ISignatureVerificationKey, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SignatureVerificationKey message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SignatureVerificationKey + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SignatureVerificationKey; + + /** + * Decodes a SignatureVerificationKey message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SignatureVerificationKey + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SignatureVerificationKey; + + /** + * Verifies a SignatureVerificationKey message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SignatureVerificationKey message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SignatureVerificationKey + */ + public static fromObject(object: { [k: string]: any }): meerkat.SignatureVerificationKey; + + /** + * Creates a plain object from a SignatureVerificationKey message. Also converts values to other types if specified. + * @param message SignatureVerificationKey + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.SignatureVerificationKey, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SignatureVerificationKey to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an EncryptionPublicKey. */ + interface IEncryptionPublicKey { + + /** EncryptionPublicKey data */ + data?: Uint8Array; + } + + /** Represents an EncryptionPublicKey. */ + class EncryptionPublicKey { + + /** + * Constructs a new EncryptionPublicKey. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IEncryptionPublicKey); + + /** EncryptionPublicKey data. */ + public data: Uint8Array; + + /** + * Creates a new EncryptionPublicKey instance using the specified properties. + * @param [properties] Properties to set + * @returns EncryptionPublicKey instance + */ + public static create(properties?: meerkat.IEncryptionPublicKey): meerkat.EncryptionPublicKey; + + /** + * Encodes the specified EncryptionPublicKey message. Does not implicitly {@link meerkat.EncryptionPublicKey.verify|verify} messages. + * @param message EncryptionPublicKey message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IEncryptionPublicKey, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EncryptionPublicKey message, length delimited. Does not implicitly {@link meerkat.EncryptionPublicKey.verify|verify} messages. + * @param message EncryptionPublicKey message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IEncryptionPublicKey, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EncryptionPublicKey message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EncryptionPublicKey + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.EncryptionPublicKey; + + /** + * Decodes an EncryptionPublicKey message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EncryptionPublicKey + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.EncryptionPublicKey; + + /** + * Verifies an EncryptionPublicKey message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an EncryptionPublicKey message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EncryptionPublicKey + */ + public static fromObject(object: { [k: string]: any }): meerkat.EncryptionPublicKey; + + /** + * Creates a plain object from an EncryptionPublicKey message. Also converts values to other types if specified. + * @param message EncryptionPublicKey + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.EncryptionPublicKey, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EncryptionPublicKey to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an EncryptionRandomness. */ + interface IEncryptionRandomness { + + /** EncryptionRandomness data */ + data?: Uint8Array; + } + + /** Represents an EncryptionRandomness. */ + class EncryptionRandomness { + + /** + * Constructs a new EncryptionRandomness. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IEncryptionRandomness); + + /** EncryptionRandomness data. */ + public data: Uint8Array; + + /** + * Creates a new EncryptionRandomness instance using the specified properties. + * @param [properties] Properties to set + * @returns EncryptionRandomness instance + */ + public static create(properties?: meerkat.IEncryptionRandomness): meerkat.EncryptionRandomness; + + /** + * Encodes the specified EncryptionRandomness message. Does not implicitly {@link meerkat.EncryptionRandomness.verify|verify} messages. + * @param message EncryptionRandomness message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IEncryptionRandomness, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EncryptionRandomness message, length delimited. Does not implicitly {@link meerkat.EncryptionRandomness.verify|verify} messages. + * @param message EncryptionRandomness message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IEncryptionRandomness, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EncryptionRandomness message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EncryptionRandomness + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.EncryptionRandomness; + + /** + * Decodes an EncryptionRandomness message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EncryptionRandomness + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.EncryptionRandomness; + + /** + * Verifies an EncryptionRandomness message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an EncryptionRandomness message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EncryptionRandomness + */ + public static fromObject(object: { [k: string]: any }): meerkat.EncryptionRandomness; + + /** + * Creates a plain object from an EncryptionRandomness message. Also converts values to other types if specified. + * @param message EncryptionRandomness + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.EncryptionRandomness, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EncryptionRandomness to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a RandomnessGenerationProof. */ + interface IRandomnessGenerationProof { + + /** RandomnessGenerationProof data */ + data?: Uint8Array; + } + + /** Represents a RandomnessGenerationProof. */ + class RandomnessGenerationProof { + + /** + * Constructs a new RandomnessGenerationProof. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IRandomnessGenerationProof); + + /** RandomnessGenerationProof data. */ + public data: Uint8Array; + + /** + * Creates a new RandomnessGenerationProof instance using the specified properties. + * @param [properties] Properties to set + * @returns RandomnessGenerationProof instance + */ + public static create(properties?: meerkat.IRandomnessGenerationProof): meerkat.RandomnessGenerationProof; + + /** + * Encodes the specified RandomnessGenerationProof message. Does not implicitly {@link meerkat.RandomnessGenerationProof.verify|verify} messages. + * @param message RandomnessGenerationProof message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IRandomnessGenerationProof, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RandomnessGenerationProof message, length delimited. Does not implicitly {@link meerkat.RandomnessGenerationProof.verify|verify} messages. + * @param message RandomnessGenerationProof message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IRandomnessGenerationProof, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RandomnessGenerationProof message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RandomnessGenerationProof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.RandomnessGenerationProof; + + /** + * Decodes a RandomnessGenerationProof message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RandomnessGenerationProof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.RandomnessGenerationProof; + + /** + * Verifies a RandomnessGenerationProof message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RandomnessGenerationProof message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RandomnessGenerationProof + */ + public static fromObject(object: { [k: string]: any }): meerkat.RandomnessGenerationProof; + + /** + * Creates a plain object from a RandomnessGenerationProof message. Also converts values to other types if specified. + * @param message RandomnessGenerationProof + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.RandomnessGenerationProof, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RandomnessGenerationProof to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a RerandomizableEncryptedMessage. */ + interface IRerandomizableEncryptedMessage { + + /** RerandomizableEncryptedMessage data */ + data?: Uint8Array; + } + + /** Represents a RerandomizableEncryptedMessage. */ + class RerandomizableEncryptedMessage { + + /** + * Constructs a new RerandomizableEncryptedMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IRerandomizableEncryptedMessage); + + /** RerandomizableEncryptedMessage data. */ + public data: Uint8Array; + + /** + * Creates a new RerandomizableEncryptedMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns RerandomizableEncryptedMessage instance + */ + public static create(properties?: meerkat.IRerandomizableEncryptedMessage): meerkat.RerandomizableEncryptedMessage; + + /** + * Encodes the specified RerandomizableEncryptedMessage message. Does not implicitly {@link meerkat.RerandomizableEncryptedMessage.verify|verify} messages. + * @param message RerandomizableEncryptedMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IRerandomizableEncryptedMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RerandomizableEncryptedMessage message, length delimited. Does not implicitly {@link meerkat.RerandomizableEncryptedMessage.verify|verify} messages. + * @param message RerandomizableEncryptedMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IRerandomizableEncryptedMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RerandomizableEncryptedMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RerandomizableEncryptedMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.RerandomizableEncryptedMessage; + + /** + * Decodes a RerandomizableEncryptedMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RerandomizableEncryptedMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.RerandomizableEncryptedMessage; + + /** + * Verifies a RerandomizableEncryptedMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RerandomizableEncryptedMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RerandomizableEncryptedMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.RerandomizableEncryptedMessage; + + /** + * Creates a plain object from a RerandomizableEncryptedMessage message. Also converts values to other types if specified. + * @param message RerandomizableEncryptedMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.RerandomizableEncryptedMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RerandomizableEncryptedMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a Payload. */ + interface IPayload { + + /** Payload type */ + type?: meerkat.Payload.Type; + + /** Payload id */ + id?: meerkat.IIDMessage; + + /** Payload share */ + share?: meerkat.IShareMessage; + + /** Payload commitment */ + commitment?: meerkat.ICommitmentMessage; + } + + /** Represents a Payload. */ + class Payload { + + /** + * Constructs a new Payload. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IPayload); + + /** Payload type. */ + public type: meerkat.Payload.Type; + + /** Payload id. */ + public id?: (meerkat.IIDMessage|null); + + /** Payload share. */ + public share?: (meerkat.IShareMessage|null); + + /** Payload commitment. */ + public commitment?: (meerkat.ICommitmentMessage|null); + + /** Payload payloadData. */ + public payloadData?: string; + + /** + * Creates a new Payload instance using the specified properties. + * @param [properties] Properties to set + * @returns Payload instance + */ + public static create(properties?: meerkat.IPayload): meerkat.Payload; + + /** + * Encodes the specified Payload message. Does not implicitly {@link meerkat.Payload.verify|verify} messages. + * @param message Payload message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IPayload, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Payload message, length delimited. Does not implicitly {@link meerkat.Payload.verify|verify} messages. + * @param message Payload message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IPayload, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Payload message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Payload + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Payload; + + /** + * Decodes a Payload message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Payload + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Payload; + + /** + * Verifies a Payload message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Payload message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Payload + */ + public static fromObject(object: { [k: string]: any }): meerkat.Payload; + + /** + * Creates a plain object from a Payload message. Also converts values to other types if specified. + * @param message Payload + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Payload, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Payload to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace Payload { + + /** Type enum. */ + enum Type { + SHARE = 0, + COMMITMENT = 1, + COMPLAINT = 2, + DONE = 3, + ANSWER = 4, + YCOMMITMENT = 5, + YCOMPLAINT = 6, + YANSWER = 7, + ABORT = 8 + } + } + + /** Properties of a IDMessage. */ + interface IIDMessage { + + /** IDMessage id */ + id?: number; + } + + /** Represents a IDMessage. */ + class IDMessage { + + /** + * Constructs a new IDMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IIDMessage); + + /** IDMessage id. */ + public id: number; + + /** + * Creates a new IDMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns IDMessage instance + */ + public static create(properties?: meerkat.IIDMessage): meerkat.IDMessage; + + /** + * Encodes the specified IDMessage message. Does not implicitly {@link meerkat.IDMessage.verify|verify} messages. + * @param message IDMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IIDMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified IDMessage message, length delimited. Does not implicitly {@link meerkat.IDMessage.verify|verify} messages. + * @param message IDMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IIDMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a IDMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns IDMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.IDMessage; + + /** + * Decodes a IDMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns IDMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.IDMessage; + + /** + * Verifies a IDMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a IDMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns IDMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.IDMessage; + + /** + * Creates a plain object from a IDMessage message. Also converts values to other types if specified. + * @param message IDMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.IDMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this IDMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ShareMessage. */ + interface IShareMessage { + + /** ShareMessage i */ + i?: number; + + /** ShareMessage j */ + j?: number; + + /** ShareMessage share */ + share?: Uint8Array; + + /** ShareMessage shareT */ + shareT?: Uint8Array; + } + + /** Represents a ShareMessage. */ + class ShareMessage { + + /** + * Constructs a new ShareMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IShareMessage); + + /** ShareMessage i. */ + public i: number; + + /** ShareMessage j. */ + public j: number; + + /** ShareMessage share. */ + public share: Uint8Array; + + /** ShareMessage shareT. */ + public shareT: Uint8Array; + + /** + * Creates a new ShareMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns ShareMessage instance + */ + public static create(properties?: meerkat.IShareMessage): meerkat.ShareMessage; + + /** + * Encodes the specified ShareMessage message. Does not implicitly {@link meerkat.ShareMessage.verify|verify} messages. + * @param message ShareMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IShareMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ShareMessage message, length delimited. Does not implicitly {@link meerkat.ShareMessage.verify|verify} messages. + * @param message ShareMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IShareMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ShareMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ShareMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ShareMessage; + + /** + * Decodes a ShareMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ShareMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ShareMessage; + + /** + * Verifies a ShareMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ShareMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ShareMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.ShareMessage; + + /** + * Creates a plain object from a ShareMessage message. Also converts values to other types if specified. + * @param message ShareMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.ShareMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ShareMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a CommitmentMessage. */ + interface ICommitmentMessage { + + /** CommitmentMessage k */ + k?: number; + + /** CommitmentMessage commitment */ + commitment?: Uint8Array; + } + + /** Represents a CommitmentMessage. */ + class CommitmentMessage { + + /** + * Constructs a new CommitmentMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.ICommitmentMessage); + + /** CommitmentMessage k. */ + public k: number; + + /** CommitmentMessage commitment. */ + public commitment: Uint8Array; + + /** + * Creates a new CommitmentMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns CommitmentMessage instance + */ + public static create(properties?: meerkat.ICommitmentMessage): meerkat.CommitmentMessage; + + /** + * Encodes the specified CommitmentMessage message. Does not implicitly {@link meerkat.CommitmentMessage.verify|verify} messages. + * @param message CommitmentMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.ICommitmentMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CommitmentMessage message, length delimited. Does not implicitly {@link meerkat.CommitmentMessage.verify|verify} messages. + * @param message CommitmentMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.ICommitmentMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CommitmentMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CommitmentMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.CommitmentMessage; + + /** + * Decodes a CommitmentMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CommitmentMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.CommitmentMessage; + + /** + * Verifies a CommitmentMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CommitmentMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CommitmentMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.CommitmentMessage; + + /** + * Creates a plain object from a CommitmentMessage message. Also converts values to other types if specified. + * @param message CommitmentMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.CommitmentMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CommitmentMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a MixBatchHeader. */ + interface IMixBatchHeader { + + /** MixBatchHeader logN */ + logN?: number; + + /** MixBatchHeader layers */ + layers?: number; + } + + /** Represents a MixBatchHeader. */ + class MixBatchHeader { + + /** + * Constructs a new MixBatchHeader. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IMixBatchHeader); + + /** MixBatchHeader logN. */ + public logN: number; + + /** MixBatchHeader layers. */ + public layers: number; + + /** + * Creates a new MixBatchHeader instance using the specified properties. + * @param [properties] Properties to set + * @returns MixBatchHeader instance + */ + public static create(properties?: meerkat.IMixBatchHeader): meerkat.MixBatchHeader; + + /** + * Encodes the specified MixBatchHeader message. Does not implicitly {@link meerkat.MixBatchHeader.verify|verify} messages. + * @param message MixBatchHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IMixBatchHeader, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MixBatchHeader message, length delimited. Does not implicitly {@link meerkat.MixBatchHeader.verify|verify} messages. + * @param message MixBatchHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IMixBatchHeader, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MixBatchHeader message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MixBatchHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.MixBatchHeader; + + /** + * Decodes a MixBatchHeader message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MixBatchHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.MixBatchHeader; + + /** + * Verifies a MixBatchHeader message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a MixBatchHeader message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MixBatchHeader + */ + public static fromObject(object: { [k: string]: any }): meerkat.MixBatchHeader; + + /** + * Creates a plain object from a MixBatchHeader message. Also converts values to other types if specified. + * @param message MixBatchHeader + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.MixBatchHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MixBatchHeader to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a Plaintext. */ + interface IPlaintext { + + /** Plaintext data */ + data?: Uint8Array; + } + + /** Represents a Plaintext. */ + class Plaintext { + + /** + * Constructs a new Plaintext. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IPlaintext); + + /** Plaintext data. */ + public data: Uint8Array; + + /** + * Creates a new Plaintext instance using the specified properties. + * @param [properties] Properties to set + * @returns Plaintext instance + */ + public static create(properties?: meerkat.IPlaintext): meerkat.Plaintext; + + /** + * Encodes the specified Plaintext message. Does not implicitly {@link meerkat.Plaintext.verify|verify} messages. + * @param message Plaintext message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IPlaintext, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Plaintext message, length delimited. Does not implicitly {@link meerkat.Plaintext.verify|verify} messages. + * @param message Plaintext message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IPlaintext, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Plaintext message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Plaintext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Plaintext; + + /** + * Decodes a Plaintext message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Plaintext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Plaintext; + + /** + * Verifies a Plaintext message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Plaintext message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Plaintext + */ + public static fromObject(object: { [k: string]: any }): meerkat.Plaintext; + + /** + * Creates a plain object from a Plaintext message. Also converts values to other types if specified. + * @param message Plaintext + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Plaintext, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Plaintext to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a Mix2Proof. */ + interface IMix2Proof { + + /** Mix2Proof firstMessage */ + firstMessage?: meerkat.Mix2Proof.IFirstMessage; + + /** Mix2Proof finalMessage */ + finalMessage?: meerkat.Mix2Proof.IFinalMessage; + + /** Mix2Proof location */ + location?: meerkat.Mix2Proof.ILocation; + } + + /** Represents a Mix2Proof. */ + class Mix2Proof { + + /** + * Constructs a new Mix2Proof. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IMix2Proof); + + /** Mix2Proof firstMessage. */ + public firstMessage?: (meerkat.Mix2Proof.IFirstMessage|null); + + /** Mix2Proof finalMessage. */ + public finalMessage?: (meerkat.Mix2Proof.IFinalMessage|null); + + /** Mix2Proof location. */ + public location?: (meerkat.Mix2Proof.ILocation|null); + + /** + * Creates a new Mix2Proof instance using the specified properties. + * @param [properties] Properties to set + * @returns Mix2Proof instance + */ + public static create(properties?: meerkat.IMix2Proof): meerkat.Mix2Proof; + + /** + * Encodes the specified Mix2Proof message. Does not implicitly {@link meerkat.Mix2Proof.verify|verify} messages. + * @param message Mix2Proof message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IMix2Proof, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Mix2Proof message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.verify|verify} messages. + * @param message Mix2Proof message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IMix2Proof, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Mix2Proof message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Mix2Proof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof; + + /** + * Decodes a Mix2Proof message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Mix2Proof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof; + + /** + * Verifies a Mix2Proof message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Mix2Proof message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Mix2Proof + */ + public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof; + + /** + * Creates a plain object from a Mix2Proof message. Also converts values to other types if specified. + * @param message Mix2Proof + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Mix2Proof, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Mix2Proof to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace Mix2Proof { + + /** Properties of a DlogProof. */ + interface IDlogProof { + } + + /** Represents a DlogProof. */ + class DlogProof { + + /** + * Constructs a new DlogProof. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.Mix2Proof.IDlogProof); + + /** + * Creates a new DlogProof instance using the specified properties. + * @param [properties] Properties to set + * @returns DlogProof instance + */ + public static create(properties?: meerkat.Mix2Proof.IDlogProof): meerkat.Mix2Proof.DlogProof; + + /** + * Encodes the specified DlogProof message. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.verify|verify} messages. + * @param message DlogProof message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.Mix2Proof.IDlogProof, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DlogProof message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.verify|verify} messages. + * @param message DlogProof message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.Mix2Proof.IDlogProof, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DlogProof message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DlogProof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.DlogProof; + + /** + * Decodes a DlogProof message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DlogProof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.DlogProof; + + /** + * Verifies a DlogProof message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DlogProof message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DlogProof + */ + public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.DlogProof; + + /** + * Creates a plain object from a DlogProof message. Also converts values to other types if specified. + * @param message DlogProof + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Mix2Proof.DlogProof, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DlogProof to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace DlogProof { + + /** Properties of a FirstMessage. */ + interface IFirstMessage { + + /** FirstMessage gr */ + gr?: meerkat.IGroupElement; + + /** FirstMessage hr */ + hr?: meerkat.IGroupElement; + } + + /** Represents a FirstMessage. */ + class FirstMessage { + + /** + * Constructs a new FirstMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.Mix2Proof.DlogProof.IFirstMessage); + + /** FirstMessage gr. */ + public gr?: (meerkat.IGroupElement|null); + + /** FirstMessage hr. */ + public hr?: (meerkat.IGroupElement|null); + + /** + * Creates a new FirstMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns FirstMessage instance + */ + public static create(properties?: meerkat.Mix2Proof.DlogProof.IFirstMessage): meerkat.Mix2Proof.DlogProof.FirstMessage; + + /** + * Encodes the specified FirstMessage message. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FirstMessage.verify|verify} messages. + * @param message FirstMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.Mix2Proof.DlogProof.IFirstMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FirstMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FirstMessage.verify|verify} messages. + * @param message FirstMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.Mix2Proof.DlogProof.IFirstMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FirstMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FirstMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.DlogProof.FirstMessage; + + /** + * Decodes a FirstMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FirstMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.DlogProof.FirstMessage; + + /** + * Verifies a FirstMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a FirstMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FirstMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.DlogProof.FirstMessage; + + /** + * Creates a plain object from a FirstMessage message. Also converts values to other types if specified. + * @param message FirstMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Mix2Proof.DlogProof.FirstMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FirstMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a FinalMessage. */ + interface IFinalMessage { + + /** FinalMessage xcr */ + xcr?: meerkat.IBigInteger; + } + + /** Represents a FinalMessage. */ + class FinalMessage { + + /** + * Constructs a new FinalMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.Mix2Proof.DlogProof.IFinalMessage); + + /** FinalMessage xcr. */ + public xcr?: (meerkat.IBigInteger|null); + + /** + * Creates a new FinalMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns FinalMessage instance + */ + public static create(properties?: meerkat.Mix2Proof.DlogProof.IFinalMessage): meerkat.Mix2Proof.DlogProof.FinalMessage; + + /** + * Encodes the specified FinalMessage message. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FinalMessage.verify|verify} messages. + * @param message FinalMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.Mix2Proof.DlogProof.IFinalMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FinalMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FinalMessage.verify|verify} messages. + * @param message FinalMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.Mix2Proof.DlogProof.IFinalMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FinalMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FinalMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.DlogProof.FinalMessage; + + /** + * Decodes a FinalMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FinalMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.DlogProof.FinalMessage; + + /** + * Verifies a FinalMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a FinalMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FinalMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.DlogProof.FinalMessage; + + /** + * Creates a plain object from a FinalMessage message. Also converts values to other types if specified. + * @param message FinalMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Mix2Proof.DlogProof.FinalMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FinalMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + + /** Properties of an AndProof. */ + interface IAndProof { + } + + /** Represents an AndProof. */ + class AndProof { + + /** + * Constructs a new AndProof. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.Mix2Proof.IAndProof); + + /** + * Creates a new AndProof instance using the specified properties. + * @param [properties] Properties to set + * @returns AndProof instance + */ + public static create(properties?: meerkat.Mix2Proof.IAndProof): meerkat.Mix2Proof.AndProof; + + /** + * Encodes the specified AndProof message. Does not implicitly {@link meerkat.Mix2Proof.AndProof.verify|verify} messages. + * @param message AndProof message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.Mix2Proof.IAndProof, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified AndProof message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.AndProof.verify|verify} messages. + * @param message AndProof message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.Mix2Proof.IAndProof, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an AndProof message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns AndProof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.AndProof; + + /** + * Decodes an AndProof message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns AndProof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.AndProof; + + /** + * Verifies an AndProof message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an AndProof message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns AndProof + */ + public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.AndProof; + + /** + * Creates a plain object from an AndProof message. Also converts values to other types if specified. + * @param message AndProof + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Mix2Proof.AndProof, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this AndProof to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace AndProof { + + /** Properties of a FirstMessage. */ + interface IFirstMessage { + + /** FirstMessage clause0 */ + clause0?: meerkat.Mix2Proof.DlogProof.IFirstMessage; + + /** FirstMessage clause1 */ + clause1?: meerkat.Mix2Proof.DlogProof.IFirstMessage; + } + + /** Represents a FirstMessage. */ + class FirstMessage { + + /** + * Constructs a new FirstMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.Mix2Proof.AndProof.IFirstMessage); + + /** FirstMessage clause0. */ + public clause0?: (meerkat.Mix2Proof.DlogProof.IFirstMessage|null); + + /** FirstMessage clause1. */ + public clause1?: (meerkat.Mix2Proof.DlogProof.IFirstMessage|null); + + /** + * Creates a new FirstMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns FirstMessage instance + */ + public static create(properties?: meerkat.Mix2Proof.AndProof.IFirstMessage): meerkat.Mix2Proof.AndProof.FirstMessage; + + /** + * Encodes the specified FirstMessage message. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FirstMessage.verify|verify} messages. + * @param message FirstMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.Mix2Proof.AndProof.IFirstMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FirstMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FirstMessage.verify|verify} messages. + * @param message FirstMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.Mix2Proof.AndProof.IFirstMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FirstMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FirstMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.AndProof.FirstMessage; + + /** + * Decodes a FirstMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FirstMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.AndProof.FirstMessage; + + /** + * Verifies a FirstMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a FirstMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FirstMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.AndProof.FirstMessage; + + /** + * Creates a plain object from a FirstMessage message. Also converts values to other types if specified. + * @param message FirstMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Mix2Proof.AndProof.FirstMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FirstMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a FinalMessage. */ + interface IFinalMessage { + + /** FinalMessage clause0 */ + clause0?: meerkat.Mix2Proof.DlogProof.IFinalMessage; + + /** FinalMessage clause1 */ + clause1?: meerkat.Mix2Proof.DlogProof.IFinalMessage; + } + + /** Represents a FinalMessage. */ + class FinalMessage { + + /** + * Constructs a new FinalMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.Mix2Proof.AndProof.IFinalMessage); + + /** FinalMessage clause0. */ + public clause0?: (meerkat.Mix2Proof.DlogProof.IFinalMessage|null); + + /** FinalMessage clause1. */ + public clause1?: (meerkat.Mix2Proof.DlogProof.IFinalMessage|null); + + /** + * Creates a new FinalMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns FinalMessage instance + */ + public static create(properties?: meerkat.Mix2Proof.AndProof.IFinalMessage): meerkat.Mix2Proof.AndProof.FinalMessage; + + /** + * Encodes the specified FinalMessage message. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FinalMessage.verify|verify} messages. + * @param message FinalMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.Mix2Proof.AndProof.IFinalMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FinalMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FinalMessage.verify|verify} messages. + * @param message FinalMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.Mix2Proof.AndProof.IFinalMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FinalMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FinalMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.AndProof.FinalMessage; + + /** + * Decodes a FinalMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FinalMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.AndProof.FinalMessage; + + /** + * Verifies a FinalMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a FinalMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FinalMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.AndProof.FinalMessage; + + /** + * Creates a plain object from a FinalMessage message. Also converts values to other types if specified. + * @param message FinalMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Mix2Proof.AndProof.FinalMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FinalMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + + /** Properties of a FirstMessage. */ + interface IFirstMessage { + + /** FirstMessage clause0 */ + clause0?: meerkat.Mix2Proof.AndProof.IFirstMessage; + + /** FirstMessage clause1 */ + clause1?: meerkat.Mix2Proof.AndProof.IFirstMessage; + } + + /** Represents a FirstMessage. */ + class FirstMessage { + + /** + * Constructs a new FirstMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.Mix2Proof.IFirstMessage); + + /** FirstMessage clause0. */ + public clause0?: (meerkat.Mix2Proof.AndProof.IFirstMessage|null); + + /** FirstMessage clause1. */ + public clause1?: (meerkat.Mix2Proof.AndProof.IFirstMessage|null); + + /** + * Creates a new FirstMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns FirstMessage instance + */ + public static create(properties?: meerkat.Mix2Proof.IFirstMessage): meerkat.Mix2Proof.FirstMessage; + + /** + * Encodes the specified FirstMessage message. Does not implicitly {@link meerkat.Mix2Proof.FirstMessage.verify|verify} messages. + * @param message FirstMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.Mix2Proof.IFirstMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FirstMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.FirstMessage.verify|verify} messages. + * @param message FirstMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.Mix2Proof.IFirstMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FirstMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FirstMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.FirstMessage; + + /** + * Decodes a FirstMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FirstMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.FirstMessage; + + /** + * Verifies a FirstMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a FirstMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FirstMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.FirstMessage; + + /** + * Creates a plain object from a FirstMessage message. Also converts values to other types if specified. + * @param message FirstMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Mix2Proof.FirstMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FirstMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a FinalMessage. */ + interface IFinalMessage { + + /** FinalMessage clause0 */ + clause0?: meerkat.Mix2Proof.AndProof.IFinalMessage; + + /** FinalMessage clause1 */ + clause1?: meerkat.Mix2Proof.AndProof.IFinalMessage; + + /** FinalMessage c0 */ + c0?: meerkat.IBigInteger; + } + + /** Represents a FinalMessage. */ + class FinalMessage { + + /** + * Constructs a new FinalMessage. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.Mix2Proof.IFinalMessage); + + /** FinalMessage clause0. */ + public clause0?: (meerkat.Mix2Proof.AndProof.IFinalMessage|null); + + /** FinalMessage clause1. */ + public clause1?: (meerkat.Mix2Proof.AndProof.IFinalMessage|null); + + /** FinalMessage c0. */ + public c0?: (meerkat.IBigInteger|null); + + /** + * Creates a new FinalMessage instance using the specified properties. + * @param [properties] Properties to set + * @returns FinalMessage instance + */ + public static create(properties?: meerkat.Mix2Proof.IFinalMessage): meerkat.Mix2Proof.FinalMessage; + + /** + * Encodes the specified FinalMessage message. Does not implicitly {@link meerkat.Mix2Proof.FinalMessage.verify|verify} messages. + * @param message FinalMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.Mix2Proof.IFinalMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FinalMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.FinalMessage.verify|verify} messages. + * @param message FinalMessage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.Mix2Proof.IFinalMessage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FinalMessage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FinalMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.FinalMessage; + + /** + * Decodes a FinalMessage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FinalMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.FinalMessage; + + /** + * Verifies a FinalMessage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a FinalMessage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FinalMessage + */ + public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.FinalMessage; + + /** + * Creates a plain object from a FinalMessage message. Also converts values to other types if specified. + * @param message FinalMessage + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Mix2Proof.FinalMessage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FinalMessage to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a Location. */ + interface ILocation { + + /** Location layer */ + layer?: number; + + /** Location switchIdx */ + switchIdx?: number; + + /** Location out0 */ + out0?: number; + + /** Location out1 */ + out1?: number; + } + + /** Represents a Location. */ + class Location { + + /** + * Constructs a new Location. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.Mix2Proof.ILocation); + + /** Location layer. */ + public layer: number; + + /** Location switchIdx. */ + public switchIdx: number; + + /** Location out0. */ + public out0: number; + + /** Location out1. */ + public out1: number; + + /** + * Creates a new Location instance using the specified properties. + * @param [properties] Properties to set + * @returns Location instance + */ + public static create(properties?: meerkat.Mix2Proof.ILocation): meerkat.Mix2Proof.Location; + + /** + * Encodes the specified Location message. Does not implicitly {@link meerkat.Mix2Proof.Location.verify|verify} messages. + * @param message Location message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.Mix2Proof.ILocation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Location message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.Location.verify|verify} messages. + * @param message Location message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.Mix2Proof.ILocation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Location message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Location + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.Location; + + /** + * Decodes a Location message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Location + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.Location; + + /** + * Verifies a Location message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Location message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Location + */ + public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.Location; + + /** + * Creates a plain object from a Location message. Also converts values to other types if specified. + * @param message Location + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Mix2Proof.Location, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Location to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + + /** Properties of a ConnectionServerData. */ + interface IConnectionServerData { + + /** ConnectionServerData serverUrl */ + serverUrl?: string; + + /** ConnectionServerData nonce */ + nonce?: (number|Long); + } + + /** Represents a ConnectionServerData. */ + class ConnectionServerData { + + /** + * Constructs a new ConnectionServerData. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IConnectionServerData); + + /** ConnectionServerData serverUrl. */ + public serverUrl: string; + + /** ConnectionServerData nonce. */ + public nonce: (number|Long); + + /** + * Creates a new ConnectionServerData instance using the specified properties. + * @param [properties] Properties to set + * @returns ConnectionServerData instance + */ + public static create(properties?: meerkat.IConnectionServerData): meerkat.ConnectionServerData; + + /** + * Encodes the specified ConnectionServerData message. Does not implicitly {@link meerkat.ConnectionServerData.verify|verify} messages. + * @param message ConnectionServerData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IConnectionServerData, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ConnectionServerData message, length delimited. Does not implicitly {@link meerkat.ConnectionServerData.verify|verify} messages. + * @param message ConnectionServerData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IConnectionServerData, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ConnectionServerData message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ConnectionServerData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ConnectionServerData; + + /** + * Decodes a ConnectionServerData message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ConnectionServerData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ConnectionServerData; + + /** + * Verifies a ConnectionServerData message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ConnectionServerData message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ConnectionServerData + */ + public static fromObject(object: { [k: string]: any }): meerkat.ConnectionServerData; + + /** + * Creates a plain object from a ConnectionServerData message. Also converts values to other types if specified. + * @param message ConnectionServerData + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.ConnectionServerData, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ConnectionServerData to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ConnectionClientData. */ + interface IConnectionClientData { + + /** ConnectionClientData scannerId */ + scannerId?: Uint8Array; + + /** ConnectionClientData scannerPK */ + scannerPK?: meerkat.ISignatureVerificationKey; + + /** ConnectionClientData nonce */ + nonce?: (number|Long); + } + + /** Represents a ConnectionClientData. */ + class ConnectionClientData { + + /** + * Constructs a new ConnectionClientData. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IConnectionClientData); + + /** ConnectionClientData scannerId. */ + public scannerId: Uint8Array; + + /** ConnectionClientData scannerPK. */ + public scannerPK?: (meerkat.ISignatureVerificationKey|null); + + /** ConnectionClientData nonce. */ + public nonce: (number|Long); + + /** ConnectionClientData id. */ + public id?: string; + + /** + * Creates a new ConnectionClientData instance using the specified properties. + * @param [properties] Properties to set + * @returns ConnectionClientData instance + */ + public static create(properties?: meerkat.IConnectionClientData): meerkat.ConnectionClientData; + + /** + * Encodes the specified ConnectionClientData message. Does not implicitly {@link meerkat.ConnectionClientData.verify|verify} messages. + * @param message ConnectionClientData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IConnectionClientData, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ConnectionClientData message, length delimited. Does not implicitly {@link meerkat.ConnectionClientData.verify|verify} messages. + * @param message ConnectionClientData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IConnectionClientData, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ConnectionClientData message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ConnectionClientData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ConnectionClientData; + + /** + * Decodes a ConnectionClientData message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ConnectionClientData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ConnectionClientData; + + /** + * Verifies a ConnectionClientData message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ConnectionClientData message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ConnectionClientData + */ + public static fromObject(object: { [k: string]: any }): meerkat.ConnectionClientData; + + /** + * Creates a plain object from a ConnectionClientData message. Also converts values to other types if specified. + * @param message ConnectionClientData + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.ConnectionClientData, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ConnectionClientData to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ScannedBallot. */ + interface IScannedBallot { + + /** ScannedBallot channel */ + channel?: Uint8Array; + + /** ScannedBallot signedEncryptedBallot */ + signedEncryptedBallot?: meerkat.ISignedEncryptedBallot; + } + + /** Represents a ScannedBallot. */ + class ScannedBallot { + + /** + * Constructs a new ScannedBallot. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IScannedBallot); + + /** ScannedBallot channel. */ + public channel: Uint8Array; + + /** ScannedBallot signedEncryptedBallot. */ + public signedEncryptedBallot?: (meerkat.ISignedEncryptedBallot|null); + + /** + * Creates a new ScannedBallot instance using the specified properties. + * @param [properties] Properties to set + * @returns ScannedBallot instance + */ + public static create(properties?: meerkat.IScannedBallot): meerkat.ScannedBallot; + + /** + * Encodes the specified ScannedBallot message. Does not implicitly {@link meerkat.ScannedBallot.verify|verify} messages. + * @param message ScannedBallot message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IScannedBallot, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ScannedBallot message, length delimited. Does not implicitly {@link meerkat.ScannedBallot.verify|verify} messages. + * @param message ScannedBallot message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IScannedBallot, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ScannedBallot message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ScannedBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ScannedBallot; + + /** + * Decodes a ScannedBallot message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ScannedBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ScannedBallot; + + /** + * Verifies a ScannedBallot message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ScannedBallot message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ScannedBallot + */ + public static fromObject(object: { [k: string]: any }): meerkat.ScannedBallot; + + /** + * Creates a plain object from a ScannedBallot message. Also converts values to other types if specified. + * @param message ScannedBallot + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.ScannedBallot, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ScannedBallot to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ScanError. */ + interface IScanError { + + /** ScanError msg */ + msg?: string; + } + + /** Represents a ScanError. */ + class ScanError { + + /** + * Constructs a new ScanError. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IScanError); + + /** ScanError msg. */ + public msg: string; + + /** + * Creates a new ScanError instance using the specified properties. + * @param [properties] Properties to set + * @returns ScanError instance + */ + public static create(properties?: meerkat.IScanError): meerkat.ScanError; + + /** + * Encodes the specified ScanError message. Does not implicitly {@link meerkat.ScanError.verify|verify} messages. + * @param message ScanError message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IScanError, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ScanError message, length delimited. Does not implicitly {@link meerkat.ScanError.verify|verify} messages. + * @param message ScanError message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IScanError, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ScanError message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ScanError + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ScanError; + + /** + * Decodes a ScanError message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ScanError + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ScanError; + + /** + * Verifies a ScanError message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ScanError message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ScanError + */ + public static fromObject(object: { [k: string]: any }): meerkat.ScanError; + + /** + * Creates a plain object from a ScanError message. Also converts values to other types if specified. + * @param message ScanError + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.ScanError, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ScanError to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ScannedData. */ + interface IScannedData { + + /** ScannedData ballot */ + ballot?: meerkat.IScannedBallot; + + /** ScannedData error */ + error?: meerkat.IScanError; + + /** ScannedData serial */ + serial?: (number|Long); + + /** ScannedData scannerId */ + scannerId?: Uint8Array; + } + + /** Represents a ScannedData. */ + class ScannedData { + + /** + * Constructs a new ScannedData. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IScannedData); + + /** ScannedData ballot. */ + public ballot?: (meerkat.IScannedBallot|null); + + /** ScannedData error. */ + public error?: (meerkat.IScanError|null); + + /** ScannedData serial. */ + public serial: (number|Long); + + /** ScannedData scannerId. */ + public scannerId: Uint8Array; + + /** ScannedData data. */ + public data?: string; + + /** + * Creates a new ScannedData instance using the specified properties. + * @param [properties] Properties to set + * @returns ScannedData instance + */ + public static create(properties?: meerkat.IScannedData): meerkat.ScannedData; + + /** + * Encodes the specified ScannedData message. Does not implicitly {@link meerkat.ScannedData.verify|verify} messages. + * @param message ScannedData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IScannedData, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ScannedData message, length delimited. Does not implicitly {@link meerkat.ScannedData.verify|verify} messages. + * @param message ScannedData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IScannedData, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ScannedData message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ScannedData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ScannedData; + + /** + * Decodes a ScannedData message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ScannedData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ScannedData; + + /** + * Verifies a ScannedData message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ScannedData message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ScannedData + */ + public static fromObject(object: { [k: string]: any }): meerkat.ScannedData; + + /** + * Creates a plain object from a ScannedData message. Also converts values to other types if specified. + * @param message ScannedData + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.ScannedData, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ScannedData to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a SignedScannedData. */ + interface ISignedScannedData { + + /** SignedScannedData data */ + data?: meerkat.IScannedData; + + /** SignedScannedData scannerSig */ + scannerSig?: meerkat.ISignature; + } + + /** Represents a SignedScannedData. */ + class SignedScannedData { + + /** + * Constructs a new SignedScannedData. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.ISignedScannedData); + + /** SignedScannedData data. */ + public data?: (meerkat.IScannedData|null); + + /** SignedScannedData scannerSig. */ + public scannerSig?: (meerkat.ISignature|null); + + /** + * Creates a new SignedScannedData instance using the specified properties. + * @param [properties] Properties to set + * @returns SignedScannedData instance + */ + public static create(properties?: meerkat.ISignedScannedData): meerkat.SignedScannedData; + + /** + * Encodes the specified SignedScannedData message. Does not implicitly {@link meerkat.SignedScannedData.verify|verify} messages. + * @param message SignedScannedData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.ISignedScannedData, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SignedScannedData message, length delimited. Does not implicitly {@link meerkat.SignedScannedData.verify|verify} messages. + * @param message SignedScannedData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.ISignedScannedData, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SignedScannedData message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SignedScannedData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SignedScannedData; + + /** + * Decodes a SignedScannedData message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SignedScannedData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SignedScannedData; + + /** + * Verifies a SignedScannedData message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SignedScannedData message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SignedScannedData + */ + public static fromObject(object: { [k: string]: any }): meerkat.SignedScannedData; + + /** + * Creates a plain object from a SignedScannedData message. Also converts values to other types if specified. + * @param message SignedScannedData + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.SignedScannedData, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SignedScannedData to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** UIElementDataType enum. */ + enum UIElementDataType { + TEXT = 0, + IMAGE = 1, + VOICE = 2 + } + + /** QuestionType enum. */ + enum QuestionType { + MULTIPLE_CHOICE = 0, + MULTIPLE_SELECTION = 1, + ORDER = 2 + } + + /** Properties of a UIElement. */ + interface IUIElement { + + /** UIElement type */ + type?: meerkat.UIElementDataType; + + /** UIElement data */ + data?: Uint8Array; + } + + /** Represents a UIElement. */ + class UIElement { + + /** + * Constructs a new UIElement. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IUIElement); + + /** UIElement type. */ + public type: meerkat.UIElementDataType; + + /** UIElement data. */ + public data: Uint8Array; + + /** + * Creates a new UIElement instance using the specified properties. + * @param [properties] Properties to set + * @returns UIElement instance + */ + public static create(properties?: meerkat.IUIElement): meerkat.UIElement; + + /** + * Encodes the specified UIElement message. Does not implicitly {@link meerkat.UIElement.verify|verify} messages. + * @param message UIElement message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IUIElement, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified UIElement message, length delimited. Does not implicitly {@link meerkat.UIElement.verify|verify} messages. + * @param message UIElement message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IUIElement, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a UIElement message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns UIElement + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.UIElement; + + /** + * Decodes a UIElement message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns UIElement + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.UIElement; + + /** + * Verifies a UIElement message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a UIElement message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns UIElement + */ + public static fromObject(object: { [k: string]: any }): meerkat.UIElement; + + /** + * Creates a plain object from a UIElement message. Also converts values to other types if specified. + * @param message UIElement + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.UIElement, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this UIElement to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BallotQuestion. */ + interface IBallotQuestion { + + /** BallotQuestion isMandatory */ + isMandatory?: boolean; + + /** BallotQuestion question */ + question?: meerkat.IUIElement; + + /** BallotQuestion description */ + description?: meerkat.IUIElement; + + /** BallotQuestion answer */ + answer?: meerkat.IUIElement[]; + } + + /** Represents a BallotQuestion. */ + class BallotQuestion { + + /** + * Constructs a new BallotQuestion. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBallotQuestion); + + /** BallotQuestion isMandatory. */ + public isMandatory: boolean; + + /** BallotQuestion question. */ + public question?: (meerkat.IUIElement|null); + + /** BallotQuestion description. */ + public description?: (meerkat.IUIElement|null); + + /** BallotQuestion answer. */ + public answer: meerkat.IUIElement[]; + + /** + * Creates a new BallotQuestion instance using the specified properties. + * @param [properties] Properties to set + * @returns BallotQuestion instance + */ + public static create(properties?: meerkat.IBallotQuestion): meerkat.BallotQuestion; + + /** + * Encodes the specified BallotQuestion message. Does not implicitly {@link meerkat.BallotQuestion.verify|verify} messages. + * @param message BallotQuestion message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBallotQuestion, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BallotQuestion message, length delimited. Does not implicitly {@link meerkat.BallotQuestion.verify|verify} messages. + * @param message BallotQuestion message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBallotQuestion, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BallotQuestion message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BallotQuestion + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BallotQuestion; + + /** + * Decodes a BallotQuestion message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BallotQuestion + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BallotQuestion; + + /** + * Verifies a BallotQuestion message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BallotQuestion message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BallotQuestion + */ + public static fromObject(object: { [k: string]: any }): meerkat.BallotQuestion; + + /** + * Creates a plain object from a BallotQuestion message. Also converts values to other types if specified. + * @param message BallotQuestion + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BallotQuestion, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BallotQuestion to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a QuestionCluster. */ + interface IQuestionCluster { + + /** QuestionCluster clusterDescription */ + clusterDescription?: meerkat.IUIElement; + + /** QuestionCluster questionIndex */ + questionIndex?: number[]; + } + + /** Represents a QuestionCluster. */ + class QuestionCluster { + + /** + * Constructs a new QuestionCluster. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IQuestionCluster); + + /** QuestionCluster clusterDescription. */ + public clusterDescription?: (meerkat.IUIElement|null); + + /** QuestionCluster questionIndex. */ + public questionIndex: number[]; + + /** + * Creates a new QuestionCluster instance using the specified properties. + * @param [properties] Properties to set + * @returns QuestionCluster instance + */ + public static create(properties?: meerkat.IQuestionCluster): meerkat.QuestionCluster; + + /** + * Encodes the specified QuestionCluster message. Does not implicitly {@link meerkat.QuestionCluster.verify|verify} messages. + * @param message QuestionCluster message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IQuestionCluster, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified QuestionCluster message, length delimited. Does not implicitly {@link meerkat.QuestionCluster.verify|verify} messages. + * @param message QuestionCluster message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IQuestionCluster, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a QuestionCluster message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns QuestionCluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.QuestionCluster; + + /** + * Decodes a QuestionCluster message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns QuestionCluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.QuestionCluster; + + /** + * Verifies a QuestionCluster message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a QuestionCluster message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns QuestionCluster + */ + public static fromObject(object: { [k: string]: any }): meerkat.QuestionCluster; + + /** + * Creates a plain object from a QuestionCluster message. Also converts values to other types if specified. + * @param message QuestionCluster + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.QuestionCluster, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this QuestionCluster to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a Channel. */ + interface IChannel { + + /** Channel channelDescription */ + channelDescription?: meerkat.IUIElement; + + /** Channel clusterIndex */ + clusterIndex?: number[]; + } + + /** Represents a Channel. */ + class Channel { + + /** + * Constructs a new Channel. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IChannel); + + /** Channel channelDescription. */ + public channelDescription?: (meerkat.IUIElement|null); + + /** Channel clusterIndex. */ + public clusterIndex: number[]; + + /** + * Creates a new Channel instance using the specified properties. + * @param [properties] Properties to set + * @returns Channel instance + */ + public static create(properties?: meerkat.IChannel): meerkat.Channel; + + /** + * Encodes the specified Channel message. Does not implicitly {@link meerkat.Channel.verify|verify} messages. + * @param message Channel message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IChannel, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Channel message, length delimited. Does not implicitly {@link meerkat.Channel.verify|verify} messages. + * @param message Channel message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IChannel, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Channel message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Channel + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Channel; + + /** + * Decodes a Channel message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Channel + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Channel; + + /** + * Verifies a Channel message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Channel message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Channel + */ + public static fromObject(object: { [k: string]: any }): meerkat.Channel; + + /** + * Creates a plain object from a Channel message. Also converts values to other types if specified. + * @param message Channel + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Channel, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Channel to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BallotAnswer. */ + interface IBallotAnswer { + + /** BallotAnswer answer */ + answer?: (number|Long)[]; + } + + /** Represents a BallotAnswer. */ + class BallotAnswer { + + /** + * Constructs a new BallotAnswer. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBallotAnswer); + + /** BallotAnswer answer. */ + public answer: (number|Long)[]; + + /** + * Creates a new BallotAnswer instance using the specified properties. + * @param [properties] Properties to set + * @returns BallotAnswer instance + */ + public static create(properties?: meerkat.IBallotAnswer): meerkat.BallotAnswer; + + /** + * Encodes the specified BallotAnswer message. Does not implicitly {@link meerkat.BallotAnswer.verify|verify} messages. + * @param message BallotAnswer message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBallotAnswer, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BallotAnswer message, length delimited. Does not implicitly {@link meerkat.BallotAnswer.verify|verify} messages. + * @param message BallotAnswer message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBallotAnswer, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BallotAnswer message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BallotAnswer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BallotAnswer; + + /** + * Decodes a BallotAnswer message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BallotAnswer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BallotAnswer; + + /** + * Verifies a BallotAnswer message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BallotAnswer message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BallotAnswer + */ + public static fromObject(object: { [k: string]: any }): meerkat.BallotAnswer; + + /** + * Creates a plain object from a BallotAnswer message. Also converts values to other types if specified. + * @param message BallotAnswer + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BallotAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BallotAnswer to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a PlaintextBallot. */ + interface IPlaintextBallot { + + /** PlaintextBallot serialNumber */ + serialNumber?: (number|Long); + + /** PlaintextBallot channelIdentifier */ + channelIdentifier?: Uint8Array; + + /** PlaintextBallot answers */ + answers?: meerkat.IBallotAnswer[]; + } + + /** Represents a PlaintextBallot. */ + class PlaintextBallot { + + /** + * Constructs a new PlaintextBallot. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IPlaintextBallot); + + /** PlaintextBallot serialNumber. */ + public serialNumber: (number|Long); + + /** PlaintextBallot channelIdentifier. */ + public channelIdentifier: Uint8Array; + + /** PlaintextBallot answers. */ + public answers: meerkat.IBallotAnswer[]; + + /** + * Creates a new PlaintextBallot instance using the specified properties. + * @param [properties] Properties to set + * @returns PlaintextBallot instance + */ + public static create(properties?: meerkat.IPlaintextBallot): meerkat.PlaintextBallot; + + /** + * Encodes the specified PlaintextBallot message. Does not implicitly {@link meerkat.PlaintextBallot.verify|verify} messages. + * @param message PlaintextBallot message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IPlaintextBallot, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PlaintextBallot message, length delimited. Does not implicitly {@link meerkat.PlaintextBallot.verify|verify} messages. + * @param message PlaintextBallot message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IPlaintextBallot, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PlaintextBallot message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PlaintextBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.PlaintextBallot; + + /** + * Decodes a PlaintextBallot message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PlaintextBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.PlaintextBallot; + + /** + * Verifies a PlaintextBallot message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PlaintextBallot message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PlaintextBallot + */ + public static fromObject(object: { [k: string]: any }): meerkat.PlaintextBallot; + + /** + * Creates a plain object from a PlaintextBallot message. Also converts values to other types if specified. + * @param message PlaintextBallot + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.PlaintextBallot, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PlaintextBallot to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an EncryptedBallot. */ + interface IEncryptedBallot { + + /** EncryptedBallot serialNumber */ + serialNumber?: (number|Long); + + /** EncryptedBallot data */ + data?: meerkat.IRerandomizableEncryptedMessage; + } + + /** Represents an EncryptedBallot. */ + class EncryptedBallot { + + /** + * Constructs a new EncryptedBallot. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IEncryptedBallot); + + /** EncryptedBallot serialNumber. */ + public serialNumber: (number|Long); + + /** EncryptedBallot data. */ + public data?: (meerkat.IRerandomizableEncryptedMessage|null); + + /** + * Creates a new EncryptedBallot instance using the specified properties. + * @param [properties] Properties to set + * @returns EncryptedBallot instance + */ + public static create(properties?: meerkat.IEncryptedBallot): meerkat.EncryptedBallot; + + /** + * Encodes the specified EncryptedBallot message. Does not implicitly {@link meerkat.EncryptedBallot.verify|verify} messages. + * @param message EncryptedBallot message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IEncryptedBallot, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EncryptedBallot message, length delimited. Does not implicitly {@link meerkat.EncryptedBallot.verify|verify} messages. + * @param message EncryptedBallot message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IEncryptedBallot, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EncryptedBallot message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EncryptedBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.EncryptedBallot; + + /** + * Decodes an EncryptedBallot message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EncryptedBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.EncryptedBallot; + + /** + * Verifies an EncryptedBallot message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an EncryptedBallot message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EncryptedBallot + */ + public static fromObject(object: { [k: string]: any }): meerkat.EncryptedBallot; + + /** + * Creates a plain object from an EncryptedBallot message. Also converts values to other types if specified. + * @param message EncryptedBallot + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.EncryptedBallot, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EncryptedBallot to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a SignedEncryptedBallot. */ + interface ISignedEncryptedBallot { + + /** SignedEncryptedBallot encryptedBallot */ + encryptedBallot?: meerkat.IEncryptedBallot; + + /** SignedEncryptedBallot signature */ + signature?: meerkat.ISignature; + } + + /** Represents a SignedEncryptedBallot. */ + class SignedEncryptedBallot { + + /** + * Constructs a new SignedEncryptedBallot. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.ISignedEncryptedBallot); + + /** SignedEncryptedBallot encryptedBallot. */ + public encryptedBallot?: (meerkat.IEncryptedBallot|null); + + /** SignedEncryptedBallot signature. */ + public signature?: (meerkat.ISignature|null); + + /** + * Creates a new SignedEncryptedBallot instance using the specified properties. + * @param [properties] Properties to set + * @returns SignedEncryptedBallot instance + */ + public static create(properties?: meerkat.ISignedEncryptedBallot): meerkat.SignedEncryptedBallot; + + /** + * Encodes the specified SignedEncryptedBallot message. Does not implicitly {@link meerkat.SignedEncryptedBallot.verify|verify} messages. + * @param message SignedEncryptedBallot message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.ISignedEncryptedBallot, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SignedEncryptedBallot message, length delimited. Does not implicitly {@link meerkat.SignedEncryptedBallot.verify|verify} messages. + * @param message SignedEncryptedBallot message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.ISignedEncryptedBallot, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SignedEncryptedBallot message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SignedEncryptedBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SignedEncryptedBallot; + + /** + * Decodes a SignedEncryptedBallot message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SignedEncryptedBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SignedEncryptedBallot; + + /** + * Verifies a SignedEncryptedBallot message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SignedEncryptedBallot message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SignedEncryptedBallot + */ + public static fromObject(object: { [k: string]: any }): meerkat.SignedEncryptedBallot; + + /** + * Creates a plain object from a SignedEncryptedBallot message. Also converts values to other types if specified. + * @param message SignedEncryptedBallot + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.SignedEncryptedBallot, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SignedEncryptedBallot to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BallotSecrets. */ + interface IBallotSecrets { + + /** BallotSecrets plaintextBallot */ + plaintextBallot?: meerkat.IPlaintextBallot; + + /** BallotSecrets encryptionRandomness */ + encryptionRandomness?: meerkat.IEncryptionRandomness; + + /** BallotSecrets proof */ + proof?: meerkat.IRandomnessGenerationProof; + } + + /** Represents a BallotSecrets. */ + class BallotSecrets { + + /** + * Constructs a new BallotSecrets. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBallotSecrets); + + /** BallotSecrets plaintextBallot. */ + public plaintextBallot?: (meerkat.IPlaintextBallot|null); + + /** BallotSecrets encryptionRandomness. */ + public encryptionRandomness?: (meerkat.IEncryptionRandomness|null); + + /** BallotSecrets proof. */ + public proof?: (meerkat.IRandomnessGenerationProof|null); + + /** + * Creates a new BallotSecrets instance using the specified properties. + * @param [properties] Properties to set + * @returns BallotSecrets instance + */ + public static create(properties?: meerkat.IBallotSecrets): meerkat.BallotSecrets; + + /** + * Encodes the specified BallotSecrets message. Does not implicitly {@link meerkat.BallotSecrets.verify|verify} messages. + * @param message BallotSecrets message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBallotSecrets, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BallotSecrets message, length delimited. Does not implicitly {@link meerkat.BallotSecrets.verify|verify} messages. + * @param message BallotSecrets message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBallotSecrets, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BallotSecrets message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BallotSecrets + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BallotSecrets; + + /** + * Decodes a BallotSecrets message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BallotSecrets + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BallotSecrets; + + /** + * Verifies a BallotSecrets message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BallotSecrets message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BallotSecrets + */ + public static fromObject(object: { [k: string]: any }): meerkat.BallotSecrets; + + /** + * Creates a plain object from a BallotSecrets message. Also converts values to other types if specified. + * @param message BallotSecrets + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BallotSecrets, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BallotSecrets to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BoothParams. */ + interface IBoothParams { + + /** BoothParams pscVerificationKeys */ + pscVerificationKeys?: meerkat.ISignatureVerificationKey[]; + } + + /** Represents a BoothParams. */ + class BoothParams { + + /** + * Constructs a new BoothParams. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBoothParams); + + /** BoothParams pscVerificationKeys. */ + public pscVerificationKeys: meerkat.ISignatureVerificationKey[]; + + /** + * Creates a new BoothParams instance using the specified properties. + * @param [properties] Properties to set + * @returns BoothParams instance + */ + public static create(properties?: meerkat.IBoothParams): meerkat.BoothParams; + + /** + * Encodes the specified BoothParams message. Does not implicitly {@link meerkat.BoothParams.verify|verify} messages. + * @param message BoothParams message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBoothParams, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BoothParams message, length delimited. Does not implicitly {@link meerkat.BoothParams.verify|verify} messages. + * @param message BoothParams message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBoothParams, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BoothParams message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BoothParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BoothParams; + + /** + * Decodes a BoothParams message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BoothParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BoothParams; + + /** + * Verifies a BoothParams message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BoothParams message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BoothParams + */ + public static fromObject(object: { [k: string]: any }): meerkat.BoothParams; + + /** + * Creates a plain object from a BoothParams message. Also converts values to other types if specified. + * @param message BoothParams + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BoothParams, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BoothParams to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BoothSystemMessages. */ + interface IBoothSystemMessages { + + /** BoothSystemMessages systemMessage */ + systemMessage?: { [k: string]: meerkat.IUIElement }; + } + + /** Represents a BoothSystemMessages. */ + class BoothSystemMessages { + + /** + * Constructs a new BoothSystemMessages. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBoothSystemMessages); + + /** BoothSystemMessages systemMessage. */ + public systemMessage: { [k: string]: meerkat.IUIElement }; + + /** + * Creates a new BoothSystemMessages instance using the specified properties. + * @param [properties] Properties to set + * @returns BoothSystemMessages instance + */ + public static create(properties?: meerkat.IBoothSystemMessages): meerkat.BoothSystemMessages; + + /** + * Encodes the specified BoothSystemMessages message. Does not implicitly {@link meerkat.BoothSystemMessages.verify|verify} messages. + * @param message BoothSystemMessages message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBoothSystemMessages, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BoothSystemMessages message, length delimited. Does not implicitly {@link meerkat.BoothSystemMessages.verify|verify} messages. + * @param message BoothSystemMessages message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBoothSystemMessages, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BoothSystemMessages message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BoothSystemMessages + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BoothSystemMessages; + + /** + * Decodes a BoothSystemMessages message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BoothSystemMessages + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BoothSystemMessages; + + /** + * Verifies a BoothSystemMessages message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BoothSystemMessages message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BoothSystemMessages + */ + public static fromObject(object: { [k: string]: any }): meerkat.BoothSystemMessages; + + /** + * Creates a plain object from a BoothSystemMessages message. Also converts values to other types if specified. + * @param message BoothSystemMessages + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BoothSystemMessages, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BoothSystemMessages to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BallotAnswerTranslationTable. */ + interface IBallotAnswerTranslationTable { + + /** BallotAnswerTranslationTable data */ + data?: Uint8Array; + } + + /** Represents a BallotAnswerTranslationTable. */ + class BallotAnswerTranslationTable { + + /** + * Constructs a new BallotAnswerTranslationTable. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBallotAnswerTranslationTable); + + /** BallotAnswerTranslationTable data. */ + public data: Uint8Array; + + /** + * Creates a new BallotAnswerTranslationTable instance using the specified properties. + * @param [properties] Properties to set + * @returns BallotAnswerTranslationTable instance + */ + public static create(properties?: meerkat.IBallotAnswerTranslationTable): meerkat.BallotAnswerTranslationTable; + + /** + * Encodes the specified BallotAnswerTranslationTable message. Does not implicitly {@link meerkat.BallotAnswerTranslationTable.verify|verify} messages. + * @param message BallotAnswerTranslationTable message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBallotAnswerTranslationTable, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BallotAnswerTranslationTable message, length delimited. Does not implicitly {@link meerkat.BallotAnswerTranslationTable.verify|verify} messages. + * @param message BallotAnswerTranslationTable message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBallotAnswerTranslationTable, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BallotAnswerTranslationTable message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BallotAnswerTranslationTable + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BallotAnswerTranslationTable; + + /** + * Decodes a BallotAnswerTranslationTable message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BallotAnswerTranslationTable + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BallotAnswerTranslationTable; + + /** + * Verifies a BallotAnswerTranslationTable message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BallotAnswerTranslationTable message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BallotAnswerTranslationTable + */ + public static fromObject(object: { [k: string]: any }): meerkat.BallotAnswerTranslationTable; + + /** + * Creates a plain object from a BallotAnswerTranslationTable message. Also converts values to other types if specified. + * @param message BallotAnswerTranslationTable + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BallotAnswerTranslationTable, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BallotAnswerTranslationTable to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a BulletinBoardClientParams. */ + interface IBulletinBoardClientParams { + + /** BulletinBoardClientParams bulletinBoardAddress */ + bulletinBoardAddress?: string[]; + + /** BulletinBoardClientParams minRedundancy */ + minRedundancy?: number; + } + + /** Represents a BulletinBoardClientParams. */ + class BulletinBoardClientParams { + + /** + * Constructs a new BulletinBoardClientParams. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IBulletinBoardClientParams); + + /** BulletinBoardClientParams bulletinBoardAddress. */ + public bulletinBoardAddress: string[]; + + /** BulletinBoardClientParams minRedundancy. */ + public minRedundancy: number; + + /** + * Creates a new BulletinBoardClientParams instance using the specified properties. + * @param [properties] Properties to set + * @returns BulletinBoardClientParams instance + */ + public static create(properties?: meerkat.IBulletinBoardClientParams): meerkat.BulletinBoardClientParams; + + /** + * Encodes the specified BulletinBoardClientParams message. Does not implicitly {@link meerkat.BulletinBoardClientParams.verify|verify} messages. + * @param message BulletinBoardClientParams message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IBulletinBoardClientParams, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BulletinBoardClientParams message, length delimited. Does not implicitly {@link meerkat.BulletinBoardClientParams.verify|verify} messages. + * @param message BulletinBoardClientParams message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IBulletinBoardClientParams, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BulletinBoardClientParams message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BulletinBoardClientParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BulletinBoardClientParams; + + /** + * Decodes a BulletinBoardClientParams message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BulletinBoardClientParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BulletinBoardClientParams; + + /** + * Verifies a BulletinBoardClientParams message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BulletinBoardClientParams message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BulletinBoardClientParams + */ + public static fromObject(object: { [k: string]: any }): meerkat.BulletinBoardClientParams; + + /** + * Creates a plain object from a BulletinBoardClientParams message. Also converts values to other types if specified. + * @param message BulletinBoardClientParams + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.BulletinBoardClientParams, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BulletinBoardClientParams to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an ElectionParams. */ + interface IElectionParams { + + /** ElectionParams trusteeVerificationKeys */ + trusteeVerificationKeys?: meerkat.ISignatureVerificationKey[]; + + /** ElectionParams trusteeSignatureThreshold */ + trusteeSignatureThreshold?: number; + + /** ElectionParams ballotEncryptionKey */ + ballotEncryptionKey?: meerkat.IEncryptionPublicKey; + + /** ElectionParams mixerVerificationKeys */ + mixerVerificationKeys?: meerkat.ISignatureVerificationKey[]; + + /** ElectionParams mixerThreshold */ + mixerThreshold?: number; + + /** ElectionParams channelChoiceQuestions */ + channelChoiceQuestions?: meerkat.IBallotQuestion[]; + + /** ElectionParams selectionData */ + selectionData?: meerkat.ISimpleCategoriesSelectionData; + + /** ElectionParams raceQuestions */ + raceQuestions?: meerkat.IBallotQuestion[]; + + /** ElectionParams bulletinBoardClientParams */ + bulletinBoardClientParams?: meerkat.IBulletinBoardClientParams; + } + + /** Represents an ElectionParams. */ + class ElectionParams { + + /** + * Constructs a new ElectionParams. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.IElectionParams); + + /** ElectionParams trusteeVerificationKeys. */ + public trusteeVerificationKeys: meerkat.ISignatureVerificationKey[]; + + /** ElectionParams trusteeSignatureThreshold. */ + public trusteeSignatureThreshold: number; + + /** ElectionParams ballotEncryptionKey. */ + public ballotEncryptionKey?: (meerkat.IEncryptionPublicKey|null); + + /** ElectionParams mixerVerificationKeys. */ + public mixerVerificationKeys: meerkat.ISignatureVerificationKey[]; + + /** ElectionParams mixerThreshold. */ + public mixerThreshold: number; + + /** ElectionParams channelChoiceQuestions. */ + public channelChoiceQuestions: meerkat.IBallotQuestion[]; + + /** ElectionParams selectionData. */ + public selectionData?: (meerkat.ISimpleCategoriesSelectionData|null); + + /** ElectionParams raceQuestions. */ + public raceQuestions: meerkat.IBallotQuestion[]; + + /** ElectionParams bulletinBoardClientParams. */ + public bulletinBoardClientParams?: (meerkat.IBulletinBoardClientParams|null); + + /** + * Creates a new ElectionParams instance using the specified properties. + * @param [properties] Properties to set + * @returns ElectionParams instance + */ + public static create(properties?: meerkat.IElectionParams): meerkat.ElectionParams; + + /** + * Encodes the specified ElectionParams message. Does not implicitly {@link meerkat.ElectionParams.verify|verify} messages. + * @param message ElectionParams message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.IElectionParams, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ElectionParams message, length delimited. Does not implicitly {@link meerkat.ElectionParams.verify|verify} messages. + * @param message ElectionParams message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.IElectionParams, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ElectionParams message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ElectionParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ElectionParams; + + /** + * Decodes an ElectionParams message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ElectionParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ElectionParams; + + /** + * Verifies an ElectionParams message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an ElectionParams message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ElectionParams + */ + public static fromObject(object: { [k: string]: any }): meerkat.ElectionParams; + + /** + * Creates a plain object from an ElectionParams message. Also converts values to other types if specified. + * @param message ElectionParams + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.ElectionParams, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ElectionParams to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a Category. */ + interface ICategory { + + /** Category questionIndex */ + questionIndex?: number[]; + } + + /** Represents a Category. */ + class Category { + + /** + * Constructs a new Category. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.ICategory); + + /** Category questionIndex. */ + public questionIndex: number[]; + + /** + * Creates a new Category instance using the specified properties. + * @param [properties] Properties to set + * @returns Category instance + */ + public static create(properties?: meerkat.ICategory): meerkat.Category; + + /** + * Encodes the specified Category message. Does not implicitly {@link meerkat.Category.verify|verify} messages. + * @param message Category message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.ICategory, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Category message, length delimited. Does not implicitly {@link meerkat.Category.verify|verify} messages. + * @param message Category message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.ICategory, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Category message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Category + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Category; + + /** + * Decodes a Category message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Category + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Category; + + /** + * Verifies a Category message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Category message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Category + */ + public static fromObject(object: { [k: string]: any }): meerkat.Category; + + /** + * Creates a plain object from a Category message. Also converts values to other types if specified. + * @param message Category + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.Category, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Category to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a CategoryChooser. */ + interface ICategoryChooser { + + /** CategoryChooser category */ + category?: meerkat.ICategory[]; + } + + /** Represents a CategoryChooser. */ + class CategoryChooser { + + /** + * Constructs a new CategoryChooser. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.ICategoryChooser); + + /** CategoryChooser category. */ + public category: meerkat.ICategory[]; + + /** + * Creates a new CategoryChooser instance using the specified properties. + * @param [properties] Properties to set + * @returns CategoryChooser instance + */ + public static create(properties?: meerkat.ICategoryChooser): meerkat.CategoryChooser; + + /** + * Encodes the specified CategoryChooser message. Does not implicitly {@link meerkat.CategoryChooser.verify|verify} messages. + * @param message CategoryChooser message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.ICategoryChooser, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CategoryChooser message, length delimited. Does not implicitly {@link meerkat.CategoryChooser.verify|verify} messages. + * @param message CategoryChooser message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.ICategoryChooser, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CategoryChooser message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CategoryChooser + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.CategoryChooser; + + /** + * Decodes a CategoryChooser message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CategoryChooser + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.CategoryChooser; + + /** + * Verifies a CategoryChooser message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CategoryChooser message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CategoryChooser + */ + public static fromObject(object: { [k: string]: any }): meerkat.CategoryChooser; + + /** + * Creates a plain object from a CategoryChooser message. Also converts values to other types if specified. + * @param message CategoryChooser + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.CategoryChooser, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CategoryChooser to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a SimpleCategoriesSelectionData. */ + interface ISimpleCategoriesSelectionData { + + /** SimpleCategoriesSelectionData sharedDefaults */ + sharedDefaults?: meerkat.ICategory; + + /** SimpleCategoriesSelectionData categoryChooser */ + categoryChooser?: meerkat.ICategoryChooser[]; + } + + /** Represents a SimpleCategoriesSelectionData. */ + class SimpleCategoriesSelectionData { + + /** + * Constructs a new SimpleCategoriesSelectionData. + * @param [properties] Properties to set + */ + constructor(properties?: meerkat.ISimpleCategoriesSelectionData); + + /** SimpleCategoriesSelectionData sharedDefaults. */ + public sharedDefaults?: (meerkat.ICategory|null); + + /** SimpleCategoriesSelectionData categoryChooser. */ + public categoryChooser: meerkat.ICategoryChooser[]; + + /** + * Creates a new SimpleCategoriesSelectionData instance using the specified properties. + * @param [properties] Properties to set + * @returns SimpleCategoriesSelectionData instance + */ + public static create(properties?: meerkat.ISimpleCategoriesSelectionData): meerkat.SimpleCategoriesSelectionData; + + /** + * Encodes the specified SimpleCategoriesSelectionData message. Does not implicitly {@link meerkat.SimpleCategoriesSelectionData.verify|verify} messages. + * @param message SimpleCategoriesSelectionData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: meerkat.ISimpleCategoriesSelectionData, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SimpleCategoriesSelectionData message, length delimited. Does not implicitly {@link meerkat.SimpleCategoriesSelectionData.verify|verify} messages. + * @param message SimpleCategoriesSelectionData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: meerkat.ISimpleCategoriesSelectionData, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SimpleCategoriesSelectionData message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SimpleCategoriesSelectionData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SimpleCategoriesSelectionData; + + /** + * Decodes a SimpleCategoriesSelectionData message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SimpleCategoriesSelectionData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SimpleCategoriesSelectionData; + + /** + * Verifies a SimpleCategoriesSelectionData message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SimpleCategoriesSelectionData message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SimpleCategoriesSelectionData + */ + public static fromObject(object: { [k: string]: any }): meerkat.SimpleCategoriesSelectionData; + + /** + * Creates a plain object from a SimpleCategoriesSelectionData message. Also converts values to other types if specified. + * @param message SimpleCategoriesSelectionData + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: meerkat.SimpleCategoriesSelectionData, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SimpleCategoriesSelectionData to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } +} + +/** Namespace google. */ +export namespace google { + + /** Namespace protobuf. */ + namespace protobuf { + + /** Properties of a Timestamp. */ + interface ITimestamp { + + /** Timestamp seconds */ + seconds?: (number|Long); + + /** Timestamp nanos */ + nanos?: number; + } + + /** Represents a Timestamp. */ + class Timestamp { + + /** + * Constructs a new Timestamp. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.ITimestamp); + + /** Timestamp seconds. */ + public seconds: (number|Long); + + /** Timestamp nanos. */ + public nanos: number; + + /** + * Creates a new Timestamp instance using the specified properties. + * @param [properties] Properties to set + * @returns Timestamp instance + */ + public static create(properties?: google.protobuf.ITimestamp): google.protobuf.Timestamp; + + /** + * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages. + * @param message Timestamp message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages. + * @param message Timestamp message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Timestamp message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Timestamp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Timestamp; + + /** + * Decodes a Timestamp message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Timestamp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Timestamp; + + /** + * Verifies a Timestamp message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Timestamp message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Timestamp + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.Timestamp; + + /** + * Creates a plain object from a Timestamp message. Also converts values to other types if specified. + * @param message Timestamp + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.Timestamp, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Timestamp to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } +} diff --git a/bulletin-board-server-frontend/src/app/bundle.js b/bulletin-board-server-frontend/src/app/bundle.js new file mode 100644 index 0000000..3de0349 --- /dev/null +++ b/bulletin-board-server-frontend/src/app/bundle.js @@ -0,0 +1,17755 @@ +/*eslint-disable block-scoped-var, no-redeclare, no-control-regex, no-prototype-builtins*/ +"use strict"; + +var $protobuf = require("protobufjs/minimal"); + +// Common aliases +var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util; + +// Exported root namespace +var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {}); + +$root.meerkat = (function() { + + /** + * Namespace meerkat. + * @exports meerkat + * @namespace + */ + var meerkat = {}; + + meerkat.UIAnswer = (function() { + + /** + * Properties of a UIAnswer. + * @memberof meerkat + * @interface IUIAnswer + * @property {Uint8Array} [answer] UIAnswer answer + * @property {string} [description] UIAnswer description + */ + + /** + * Constructs a new UIAnswer. + * @memberof meerkat + * @classdesc Represents a UIAnswer. + * @constructor + * @param {meerkat.IUIAnswer=} [properties] Properties to set + */ + function UIAnswer(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * UIAnswer answer. + * @member {Uint8Array}answer + * @memberof meerkat.UIAnswer + * @instance + */ + UIAnswer.prototype.answer = $util.newBuffer([]); + + /** + * UIAnswer description. + * @member {string}description + * @memberof meerkat.UIAnswer + * @instance + */ + UIAnswer.prototype.description = ""; + + /** + * Creates a new UIAnswer instance using the specified properties. + * @function create + * @memberof meerkat.UIAnswer + * @static + * @param {meerkat.IUIAnswer=} [properties] Properties to set + * @returns {meerkat.UIAnswer} UIAnswer instance + */ + UIAnswer.create = function create(properties) { + return new UIAnswer(properties); + }; + + /** + * Encodes the specified UIAnswer message. Does not implicitly {@link meerkat.UIAnswer.verify|verify} messages. + * @function encode + * @memberof meerkat.UIAnswer + * @static + * @param {meerkat.IUIAnswer} message UIAnswer message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UIAnswer.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.answer != null && message.hasOwnProperty("answer")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.answer); + if (message.description != null && message.hasOwnProperty("description")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.description); + return writer; + }; + + /** + * Encodes the specified UIAnswer message, length delimited. Does not implicitly {@link meerkat.UIAnswer.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.UIAnswer + * @static + * @param {meerkat.IUIAnswer} message UIAnswer message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UIAnswer.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a UIAnswer message from the specified reader or buffer. + * @function decode + * @memberof meerkat.UIAnswer + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.UIAnswer} UIAnswer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UIAnswer.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.UIAnswer(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.answer = reader.bytes(); + break; + case 2: + message.description = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a UIAnswer message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.UIAnswer + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.UIAnswer} UIAnswer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UIAnswer.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a UIAnswer message. + * @function verify + * @memberof meerkat.UIAnswer + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + UIAnswer.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.answer != null && message.hasOwnProperty("answer")) + if (!(message.answer && typeof message.answer.length === "number" || $util.isString(message.answer))) + return "answer: buffer expected"; + if (message.description != null && message.hasOwnProperty("description")) + if (!$util.isString(message.description)) + return "description: string expected"; + return null; + }; + + /** + * Creates a UIAnswer message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.UIAnswer + * @static + * @param {Object.} object Plain object + * @returns {meerkat.UIAnswer} UIAnswer + */ + UIAnswer.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.UIAnswer) + return object; + var message = new $root.meerkat.UIAnswer(); + if (object.answer != null) + if (typeof object.answer === "string") + $util.base64.decode(object.answer, message.answer = $util.newBuffer($util.base64.length(object.answer)), 0); + else if (object.answer.length) + message.answer = object.answer; + if (object.description != null) + message.description = String(object.description); + return message; + }; + + /** + * Creates a plain object from a UIAnswer message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.UIAnswer + * @static + * @param {meerkat.UIAnswer} message UIAnswer + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + UIAnswer.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.answer = options.bytes === String ? "" : []; + object.description = ""; + } + if (message.answer != null && message.hasOwnProperty("answer")) + object.answer = options.bytes === String ? $util.base64.encode(message.answer, 0, message.answer.length) : options.bytes === Array ? Array.prototype.slice.call(message.answer) : message.answer; + if (message.description != null && message.hasOwnProperty("description")) + object.description = message.description; + return object; + }; + + /** + * Converts this UIAnswer to JSON. + * @function toJSON + * @memberof meerkat.UIAnswer + * @instance + * @returns {Object.} JSON object + */ + UIAnswer.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return UIAnswer; + })(); + + meerkat.ListOfAnswers = (function() { + + /** + * Properties of a ListOfAnswers. + * @memberof meerkat + * @interface IListOfAnswers + * @property {Array.} [answers] ListOfAnswers answers + */ + + /** + * Constructs a new ListOfAnswers. + * @memberof meerkat + * @classdesc Represents a ListOfAnswers. + * @constructor + * @param {meerkat.IListOfAnswers=} [properties] Properties to set + */ + function ListOfAnswers(properties) { + this.answers = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ListOfAnswers answers. + * @member {Array.}answers + * @memberof meerkat.ListOfAnswers + * @instance + */ + ListOfAnswers.prototype.answers = $util.emptyArray; + + /** + * Creates a new ListOfAnswers instance using the specified properties. + * @function create + * @memberof meerkat.ListOfAnswers + * @static + * @param {meerkat.IListOfAnswers=} [properties] Properties to set + * @returns {meerkat.ListOfAnswers} ListOfAnswers instance + */ + ListOfAnswers.create = function create(properties) { + return new ListOfAnswers(properties); + }; + + /** + * Encodes the specified ListOfAnswers message. Does not implicitly {@link meerkat.ListOfAnswers.verify|verify} messages. + * @function encode + * @memberof meerkat.ListOfAnswers + * @static + * @param {meerkat.IListOfAnswers} message ListOfAnswers message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListOfAnswers.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.answers != null && message.answers.length) + for (var i = 0; i < message.answers.length; ++i) + $root.meerkat.UIAnswer.encode(message.answers[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ListOfAnswers message, length delimited. Does not implicitly {@link meerkat.ListOfAnswers.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.ListOfAnswers + * @static + * @param {meerkat.IListOfAnswers} message ListOfAnswers message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListOfAnswers.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListOfAnswers message from the specified reader or buffer. + * @function decode + * @memberof meerkat.ListOfAnswers + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.ListOfAnswers} ListOfAnswers + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListOfAnswers.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ListOfAnswers(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.answers && message.answers.length)) + message.answers = []; + message.answers.push($root.meerkat.UIAnswer.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListOfAnswers message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.ListOfAnswers + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.ListOfAnswers} ListOfAnswers + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListOfAnswers.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListOfAnswers message. + * @function verify + * @memberof meerkat.ListOfAnswers + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListOfAnswers.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.answers != null && message.hasOwnProperty("answers")) { + if (!Array.isArray(message.answers)) + return "answers: array expected"; + for (var i = 0; i < message.answers.length; ++i) { + var error = $root.meerkat.UIAnswer.verify(message.answers[i]); + if (error) + return "answers." + error; + } + } + return null; + }; + + /** + * Creates a ListOfAnswers message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.ListOfAnswers + * @static + * @param {Object.} object Plain object + * @returns {meerkat.ListOfAnswers} ListOfAnswers + */ + ListOfAnswers.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.ListOfAnswers) + return object; + var message = new $root.meerkat.ListOfAnswers(); + if (object.answers) { + if (!Array.isArray(object.answers)) + throw TypeError(".meerkat.ListOfAnswers.answers: array expected"); + message.answers = []; + for (var i = 0; i < object.answers.length; ++i) { + if (typeof object.answers[i] !== "object") + throw TypeError(".meerkat.ListOfAnswers.answers: object expected"); + message.answers[i] = $root.meerkat.UIAnswer.fromObject(object.answers[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a ListOfAnswers message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.ListOfAnswers + * @static + * @param {meerkat.ListOfAnswers} message ListOfAnswers + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListOfAnswers.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.answers = []; + if (message.answers && message.answers.length) { + object.answers = []; + for (var j = 0; j < message.answers.length; ++j) + object.answers[j] = $root.meerkat.UIAnswer.toObject(message.answers[j], options); + } + return object; + }; + + /** + * Converts this ListOfAnswers to JSON. + * @function toJSON + * @memberof meerkat.ListOfAnswers + * @instance + * @returns {Object.} JSON object + */ + ListOfAnswers.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ListOfAnswers; + })(); + + meerkat.UIAnswers = (function() { + + /** + * Properties of a UIAnswers. + * @memberof meerkat + * @interface IUIAnswers + * @property {number} [AnswersType] UIAnswers AnswersType + * @property {meerkat.IListOfAnswers} [answers] UIAnswers answers + */ + + /** + * Constructs a new UIAnswers. + * @memberof meerkat + * @classdesc Represents a UIAnswers. + * @constructor + * @param {meerkat.IUIAnswers=} [properties] Properties to set + */ + function UIAnswers(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * UIAnswers AnswersType. + * @member {number}AnswersType + * @memberof meerkat.UIAnswers + * @instance + */ + UIAnswers.prototype.AnswersType = 0; + + /** + * UIAnswers answers. + * @member {(meerkat.IListOfAnswers|null|undefined)}answers + * @memberof meerkat.UIAnswers + * @instance + */ + UIAnswers.prototype.answers = null; + + /** + * Creates a new UIAnswers instance using the specified properties. + * @function create + * @memberof meerkat.UIAnswers + * @static + * @param {meerkat.IUIAnswers=} [properties] Properties to set + * @returns {meerkat.UIAnswers} UIAnswers instance + */ + UIAnswers.create = function create(properties) { + return new UIAnswers(properties); + }; + + /** + * Encodes the specified UIAnswers message. Does not implicitly {@link meerkat.UIAnswers.verify|verify} messages. + * @function encode + * @memberof meerkat.UIAnswers + * @static + * @param {meerkat.IUIAnswers} message UIAnswers message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UIAnswers.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.AnswersType != null && message.hasOwnProperty("AnswersType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.AnswersType); + if (message.answers != null && message.hasOwnProperty("answers")) + $root.meerkat.ListOfAnswers.encode(message.answers, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified UIAnswers message, length delimited. Does not implicitly {@link meerkat.UIAnswers.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.UIAnswers + * @static + * @param {meerkat.IUIAnswers} message UIAnswers message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UIAnswers.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a UIAnswers message from the specified reader or buffer. + * @function decode + * @memberof meerkat.UIAnswers + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.UIAnswers} UIAnswers + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UIAnswers.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.UIAnswers(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.AnswersType = reader.int32(); + break; + case 2: + message.answers = $root.meerkat.ListOfAnswers.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a UIAnswers message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.UIAnswers + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.UIAnswers} UIAnswers + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UIAnswers.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a UIAnswers message. + * @function verify + * @memberof meerkat.UIAnswers + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + UIAnswers.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.AnswersType != null && message.hasOwnProperty("AnswersType")) + if (!$util.isInteger(message.AnswersType)) + return "AnswersType: integer expected"; + if (message.answers != null && message.hasOwnProperty("answers")) { + var error = $root.meerkat.ListOfAnswers.verify(message.answers); + if (error) + return "answers." + error; + } + return null; + }; + + /** + * Creates a UIAnswers message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.UIAnswers + * @static + * @param {Object.} object Plain object + * @returns {meerkat.UIAnswers} UIAnswers + */ + UIAnswers.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.UIAnswers) + return object; + var message = new $root.meerkat.UIAnswers(); + if (object.AnswersType != null) + message.AnswersType = object.AnswersType | 0; + if (object.answers != null) { + if (typeof object.answers !== "object") + throw TypeError(".meerkat.UIAnswers.answers: object expected"); + message.answers = $root.meerkat.ListOfAnswers.fromObject(object.answers); + } + return message; + }; + + /** + * Creates a plain object from a UIAnswers message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.UIAnswers + * @static + * @param {meerkat.UIAnswers} message UIAnswers + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + UIAnswers.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.AnswersType = 0; + object.answers = null; + } + if (message.AnswersType != null && message.hasOwnProperty("AnswersType")) + object.AnswersType = message.AnswersType; + if (message.answers != null && message.hasOwnProperty("answers")) + object.answers = $root.meerkat.ListOfAnswers.toObject(message.answers, options); + return object; + }; + + /** + * Converts this UIAnswers to JSON. + * @function toJSON + * @memberof meerkat.UIAnswers + * @instance + * @returns {Object.} JSON object + */ + UIAnswers.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return UIAnswers; + })(); + + meerkat.Question = (function() { + + /** + * Properties of a Question. + * @memberof meerkat + * @interface IQuestion + * @property {Uint8Array} [question] Question question + */ + + /** + * Constructs a new Question. + * @memberof meerkat + * @classdesc Represents a Question. + * @constructor + * @param {meerkat.IQuestion=} [properties] Properties to set + */ + function Question(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Question question. + * @member {Uint8Array}question + * @memberof meerkat.Question + * @instance + */ + Question.prototype.question = $util.newBuffer([]); + + /** + * Creates a new Question instance using the specified properties. + * @function create + * @memberof meerkat.Question + * @static + * @param {meerkat.IQuestion=} [properties] Properties to set + * @returns {meerkat.Question} Question instance + */ + Question.create = function create(properties) { + return new Question(properties); + }; + + /** + * Encodes the specified Question message. Does not implicitly {@link meerkat.Question.verify|verify} messages. + * @function encode + * @memberof meerkat.Question + * @static + * @param {meerkat.IQuestion} message Question message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Question.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.question != null && message.hasOwnProperty("question")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.question); + return writer; + }; + + /** + * Encodes the specified Question message, length delimited. Does not implicitly {@link meerkat.Question.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Question + * @static + * @param {meerkat.IQuestion} message Question message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Question.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Question message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Question + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Question} Question + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Question.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Question(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.question = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Question message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Question + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Question} Question + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Question.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Question message. + * @function verify + * @memberof meerkat.Question + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Question.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.question != null && message.hasOwnProperty("question")) + if (!(message.question && typeof message.question.length === "number" || $util.isString(message.question))) + return "question: buffer expected"; + return null; + }; + + /** + * Creates a Question message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Question + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Question} Question + */ + Question.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Question) + return object; + var message = new $root.meerkat.Question(); + if (object.question != null) + if (typeof object.question === "string") + $util.base64.decode(object.question, message.question = $util.newBuffer($util.base64.length(object.question)), 0); + else if (object.question.length) + message.question = object.question; + return message; + }; + + /** + * Creates a plain object from a Question message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Question + * @static + * @param {meerkat.Question} message Question + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Question.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.question = options.bytes === String ? "" : []; + if (message.question != null && message.hasOwnProperty("question")) + object.question = options.bytes === String ? $util.base64.encode(message.question, 0, message.question.length) : options.bytes === Array ? Array.prototype.slice.call(message.question) : message.question; + return object; + }; + + /** + * Converts this Question to JSON. + * @function toJSON + * @memberof meerkat.Question + * @instance + * @returns {Object.} JSON object + */ + Question.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Question; + })(); + + meerkat.UIQuestion = (function() { + + /** + * Properties of a UIQuestion. + * @memberof meerkat + * @interface IUIQuestion + * @property {number} [QuestionType] UIQuestion QuestionType + * @property {meerkat.IQuestion} [question] UIQuestion question + */ + + /** + * Constructs a new UIQuestion. + * @memberof meerkat + * @classdesc Represents a UIQuestion. + * @constructor + * @param {meerkat.IUIQuestion=} [properties] Properties to set + */ + function UIQuestion(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * UIQuestion QuestionType. + * @member {number}QuestionType + * @memberof meerkat.UIQuestion + * @instance + */ + UIQuestion.prototype.QuestionType = 0; + + /** + * UIQuestion question. + * @member {(meerkat.IQuestion|null|undefined)}question + * @memberof meerkat.UIQuestion + * @instance + */ + UIQuestion.prototype.question = null; + + /** + * Creates a new UIQuestion instance using the specified properties. + * @function create + * @memberof meerkat.UIQuestion + * @static + * @param {meerkat.IUIQuestion=} [properties] Properties to set + * @returns {meerkat.UIQuestion} UIQuestion instance + */ + UIQuestion.create = function create(properties) { + return new UIQuestion(properties); + }; + + /** + * Encodes the specified UIQuestion message. Does not implicitly {@link meerkat.UIQuestion.verify|verify} messages. + * @function encode + * @memberof meerkat.UIQuestion + * @static + * @param {meerkat.IUIQuestion} message UIQuestion message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UIQuestion.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.QuestionType != null && message.hasOwnProperty("QuestionType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.QuestionType); + if (message.question != null && message.hasOwnProperty("question")) + $root.meerkat.Question.encode(message.question, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified UIQuestion message, length delimited. Does not implicitly {@link meerkat.UIQuestion.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.UIQuestion + * @static + * @param {meerkat.IUIQuestion} message UIQuestion message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UIQuestion.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a UIQuestion message from the specified reader or buffer. + * @function decode + * @memberof meerkat.UIQuestion + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.UIQuestion} UIQuestion + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UIQuestion.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.UIQuestion(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.QuestionType = reader.int32(); + break; + case 2: + message.question = $root.meerkat.Question.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a UIQuestion message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.UIQuestion + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.UIQuestion} UIQuestion + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UIQuestion.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a UIQuestion message. + * @function verify + * @memberof meerkat.UIQuestion + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + UIQuestion.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.QuestionType != null && message.hasOwnProperty("QuestionType")) + if (!$util.isInteger(message.QuestionType)) + return "QuestionType: integer expected"; + if (message.question != null && message.hasOwnProperty("question")) { + var error = $root.meerkat.Question.verify(message.question); + if (error) + return "question." + error; + } + return null; + }; + + /** + * Creates a UIQuestion message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.UIQuestion + * @static + * @param {Object.} object Plain object + * @returns {meerkat.UIQuestion} UIQuestion + */ + UIQuestion.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.UIQuestion) + return object; + var message = new $root.meerkat.UIQuestion(); + if (object.QuestionType != null) + message.QuestionType = object.QuestionType | 0; + if (object.question != null) { + if (typeof object.question !== "object") + throw TypeError(".meerkat.UIQuestion.question: object expected"); + message.question = $root.meerkat.Question.fromObject(object.question); + } + return message; + }; + + /** + * Creates a plain object from a UIQuestion message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.UIQuestion + * @static + * @param {meerkat.UIQuestion} message UIQuestion + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + UIQuestion.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.QuestionType = 0; + object.question = null; + } + if (message.QuestionType != null && message.hasOwnProperty("QuestionType")) + object.QuestionType = message.QuestionType; + if (message.question != null && message.hasOwnProperty("question")) + object.question = $root.meerkat.Question.toObject(message.question, options); + return object; + }; + + /** + * Converts this UIQuestion to JSON. + * @function toJSON + * @memberof meerkat.UIQuestion + * @instance + * @returns {Object.} JSON object + */ + UIQuestion.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return UIQuestion; + })(); + + meerkat.BallotQuestionUIElement = (function() { + + /** + * Properties of a BallotQuestionUIElement. + * @memberof meerkat + * @interface IBallotQuestionUIElement + * @property {meerkat.IUIAnswers} [answers] BallotQuestionUIElement answers + * @property {boolean} [RandomizeListOrder] BallotQuestionUIElement RandomizeListOrder + * @property {meerkat.IUIQuestion} [question] BallotQuestionUIElement question + */ + + /** + * Constructs a new BallotQuestionUIElement. + * @memberof meerkat + * @classdesc Represents a BallotQuestionUIElement. + * @constructor + * @param {meerkat.IBallotQuestionUIElement=} [properties] Properties to set + */ + function BallotQuestionUIElement(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BallotQuestionUIElement answers. + * @member {(meerkat.IUIAnswers|null|undefined)}answers + * @memberof meerkat.BallotQuestionUIElement + * @instance + */ + BallotQuestionUIElement.prototype.answers = null; + + /** + * BallotQuestionUIElement RandomizeListOrder. + * @member {boolean}RandomizeListOrder + * @memberof meerkat.BallotQuestionUIElement + * @instance + */ + BallotQuestionUIElement.prototype.RandomizeListOrder = false; + + /** + * BallotQuestionUIElement question. + * @member {(meerkat.IUIQuestion|null|undefined)}question + * @memberof meerkat.BallotQuestionUIElement + * @instance + */ + BallotQuestionUIElement.prototype.question = null; + + /** + * Creates a new BallotQuestionUIElement instance using the specified properties. + * @function create + * @memberof meerkat.BallotQuestionUIElement + * @static + * @param {meerkat.IBallotQuestionUIElement=} [properties] Properties to set + * @returns {meerkat.BallotQuestionUIElement} BallotQuestionUIElement instance + */ + BallotQuestionUIElement.create = function create(properties) { + return new BallotQuestionUIElement(properties); + }; + + /** + * Encodes the specified BallotQuestionUIElement message. Does not implicitly {@link meerkat.BallotQuestionUIElement.verify|verify} messages. + * @function encode + * @memberof meerkat.BallotQuestionUIElement + * @static + * @param {meerkat.IBallotQuestionUIElement} message BallotQuestionUIElement message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BallotQuestionUIElement.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.answers != null && message.hasOwnProperty("answers")) + $root.meerkat.UIAnswers.encode(message.answers, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.RandomizeListOrder != null && message.hasOwnProperty("RandomizeListOrder")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.RandomizeListOrder); + if (message.question != null && message.hasOwnProperty("question")) + $root.meerkat.UIQuestion.encode(message.question, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BallotQuestionUIElement message, length delimited. Does not implicitly {@link meerkat.BallotQuestionUIElement.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BallotQuestionUIElement + * @static + * @param {meerkat.IBallotQuestionUIElement} message BallotQuestionUIElement message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BallotQuestionUIElement.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BallotQuestionUIElement message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BallotQuestionUIElement + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BallotQuestionUIElement} BallotQuestionUIElement + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BallotQuestionUIElement.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BallotQuestionUIElement(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.answers = $root.meerkat.UIAnswers.decode(reader, reader.uint32()); + break; + case 2: + message.RandomizeListOrder = reader.bool(); + break; + case 3: + message.question = $root.meerkat.UIQuestion.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BallotQuestionUIElement message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BallotQuestionUIElement + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BallotQuestionUIElement} BallotQuestionUIElement + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BallotQuestionUIElement.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BallotQuestionUIElement message. + * @function verify + * @memberof meerkat.BallotQuestionUIElement + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BallotQuestionUIElement.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.answers != null && message.hasOwnProperty("answers")) { + var error = $root.meerkat.UIAnswers.verify(message.answers); + if (error) + return "answers." + error; + } + if (message.RandomizeListOrder != null && message.hasOwnProperty("RandomizeListOrder")) + if (typeof message.RandomizeListOrder !== "boolean") + return "RandomizeListOrder: boolean expected"; + if (message.question != null && message.hasOwnProperty("question")) { + error = $root.meerkat.UIQuestion.verify(message.question); + if (error) + return "question." + error; + } + return null; + }; + + /** + * Creates a BallotQuestionUIElement message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BallotQuestionUIElement + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BallotQuestionUIElement} BallotQuestionUIElement + */ + BallotQuestionUIElement.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BallotQuestionUIElement) + return object; + var message = new $root.meerkat.BallotQuestionUIElement(); + if (object.answers != null) { + if (typeof object.answers !== "object") + throw TypeError(".meerkat.BallotQuestionUIElement.answers: object expected"); + message.answers = $root.meerkat.UIAnswers.fromObject(object.answers); + } + if (object.RandomizeListOrder != null) + message.RandomizeListOrder = Boolean(object.RandomizeListOrder); + if (object.question != null) { + if (typeof object.question !== "object") + throw TypeError(".meerkat.BallotQuestionUIElement.question: object expected"); + message.question = $root.meerkat.UIQuestion.fromObject(object.question); + } + return message; + }; + + /** + * Creates a plain object from a BallotQuestionUIElement message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BallotQuestionUIElement + * @static + * @param {meerkat.BallotQuestionUIElement} message BallotQuestionUIElement + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BallotQuestionUIElement.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.answers = null; + object.RandomizeListOrder = false; + object.question = null; + } + if (message.answers != null && message.hasOwnProperty("answers")) + object.answers = $root.meerkat.UIAnswers.toObject(message.answers, options); + if (message.RandomizeListOrder != null && message.hasOwnProperty("RandomizeListOrder")) + object.RandomizeListOrder = message.RandomizeListOrder; + if (message.question != null && message.hasOwnProperty("question")) + object.question = $root.meerkat.UIQuestion.toObject(message.question, options); + return object; + }; + + /** + * Converts this BallotQuestionUIElement to JSON. + * @function toJSON + * @memberof meerkat.BallotQuestionUIElement + * @instance + * @returns {Object.} JSON object + */ + BallotQuestionUIElement.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BallotQuestionUIElement; + })(); + + meerkat.BallotQuestionsUIElements = (function() { + + /** + * Properties of a BallotQuestionsUIElements. + * @memberof meerkat + * @interface IBallotQuestionsUIElements + * @property {Array.} [questions] BallotQuestionsUIElements questions + */ + + /** + * Constructs a new BallotQuestionsUIElements. + * @memberof meerkat + * @classdesc Represents a BallotQuestionsUIElements. + * @constructor + * @param {meerkat.IBallotQuestionsUIElements=} [properties] Properties to set + */ + function BallotQuestionsUIElements(properties) { + this.questions = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BallotQuestionsUIElements questions. + * @member {Array.}questions + * @memberof meerkat.BallotQuestionsUIElements + * @instance + */ + BallotQuestionsUIElements.prototype.questions = $util.emptyArray; + + /** + * Creates a new BallotQuestionsUIElements instance using the specified properties. + * @function create + * @memberof meerkat.BallotQuestionsUIElements + * @static + * @param {meerkat.IBallotQuestionsUIElements=} [properties] Properties to set + * @returns {meerkat.BallotQuestionsUIElements} BallotQuestionsUIElements instance + */ + BallotQuestionsUIElements.create = function create(properties) { + return new BallotQuestionsUIElements(properties); + }; + + /** + * Encodes the specified BallotQuestionsUIElements message. Does not implicitly {@link meerkat.BallotQuestionsUIElements.verify|verify} messages. + * @function encode + * @memberof meerkat.BallotQuestionsUIElements + * @static + * @param {meerkat.IBallotQuestionsUIElements} message BallotQuestionsUIElements message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BallotQuestionsUIElements.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.questions != null && message.questions.length) + for (var i = 0; i < message.questions.length; ++i) + $root.meerkat.BallotQuestionUIElement.encode(message.questions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BallotQuestionsUIElements message, length delimited. Does not implicitly {@link meerkat.BallotQuestionsUIElements.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BallotQuestionsUIElements + * @static + * @param {meerkat.IBallotQuestionsUIElements} message BallotQuestionsUIElements message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BallotQuestionsUIElements.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BallotQuestionsUIElements message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BallotQuestionsUIElements + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BallotQuestionsUIElements} BallotQuestionsUIElements + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BallotQuestionsUIElements.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BallotQuestionsUIElements(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.questions && message.questions.length)) + message.questions = []; + message.questions.push($root.meerkat.BallotQuestionUIElement.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BallotQuestionsUIElements message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BallotQuestionsUIElements + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BallotQuestionsUIElements} BallotQuestionsUIElements + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BallotQuestionsUIElements.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BallotQuestionsUIElements message. + * @function verify + * @memberof meerkat.BallotQuestionsUIElements + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BallotQuestionsUIElements.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.questions != null && message.hasOwnProperty("questions")) { + if (!Array.isArray(message.questions)) + return "questions: array expected"; + for (var i = 0; i < message.questions.length; ++i) { + var error = $root.meerkat.BallotQuestionUIElement.verify(message.questions[i]); + if (error) + return "questions." + error; + } + } + return null; + }; + + /** + * Creates a BallotQuestionsUIElements message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BallotQuestionsUIElements + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BallotQuestionsUIElements} BallotQuestionsUIElements + */ + BallotQuestionsUIElements.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BallotQuestionsUIElements) + return object; + var message = new $root.meerkat.BallotQuestionsUIElements(); + if (object.questions) { + if (!Array.isArray(object.questions)) + throw TypeError(".meerkat.BallotQuestionsUIElements.questions: array expected"); + message.questions = []; + for (var i = 0; i < object.questions.length; ++i) { + if (typeof object.questions[i] !== "object") + throw TypeError(".meerkat.BallotQuestionsUIElements.questions: object expected"); + message.questions[i] = $root.meerkat.BallotQuestionUIElement.fromObject(object.questions[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a BallotQuestionsUIElements message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BallotQuestionsUIElements + * @static + * @param {meerkat.BallotQuestionsUIElements} message BallotQuestionsUIElements + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BallotQuestionsUIElements.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.questions = []; + if (message.questions && message.questions.length) { + object.questions = []; + for (var j = 0; j < message.questions.length; ++j) + object.questions[j] = $root.meerkat.BallotQuestionUIElement.toObject(message.questions[j], options); + } + return object; + }; + + /** + * Converts this BallotQuestionsUIElements to JSON. + * @function toJSON + * @memberof meerkat.BallotQuestionsUIElements + * @instance + * @returns {Object.} JSON object + */ + BallotQuestionsUIElements.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BallotQuestionsUIElements; + })(); + + /** + * ValueType enum. + * @enum {string} + * @property {number} TEXT_TYPE=0 TEXT_TYPE value + * @property {number} AUDIO_TYPE=1 AUDIO_TYPE value + * @property {number} IMAGE_TYPE=2 IMAGE_TYPE value + */ + meerkat.ValueType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "TEXT_TYPE"] = 0; + values[valuesById[1] = "AUDIO_TYPE"] = 1; + values[valuesById[2] = "IMAGE_TYPE"] = 2; + return values; + })(); + + meerkat.BoolMsg = (function() { + + /** + * Properties of a BoolMsg. + * @memberof meerkat + * @interface IBoolMsg + * @property {boolean} [value] BoolMsg value + */ + + /** + * Constructs a new BoolMsg. + * @memberof meerkat + * @classdesc Represents a BoolMsg. + * @constructor + * @param {meerkat.IBoolMsg=} [properties] Properties to set + */ + function BoolMsg(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BoolMsg value. + * @member {boolean}value + * @memberof meerkat.BoolMsg + * @instance + */ + BoolMsg.prototype.value = false; + + /** + * Creates a new BoolMsg instance using the specified properties. + * @function create + * @memberof meerkat.BoolMsg + * @static + * @param {meerkat.IBoolMsg=} [properties] Properties to set + * @returns {meerkat.BoolMsg} BoolMsg instance + */ + BoolMsg.create = function create(properties) { + return new BoolMsg(properties); + }; + + /** + * Encodes the specified BoolMsg message. Does not implicitly {@link meerkat.BoolMsg.verify|verify} messages. + * @function encode + * @memberof meerkat.BoolMsg + * @static + * @param {meerkat.IBoolMsg} message BoolMsg message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BoolMsg.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.value != null && message.hasOwnProperty("value")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.value); + return writer; + }; + + /** + * Encodes the specified BoolMsg message, length delimited. Does not implicitly {@link meerkat.BoolMsg.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BoolMsg + * @static + * @param {meerkat.IBoolMsg} message BoolMsg message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BoolMsg.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BoolMsg message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BoolMsg + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BoolMsg} BoolMsg + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BoolMsg.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BoolMsg(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.value = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BoolMsg message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BoolMsg + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BoolMsg} BoolMsg + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BoolMsg.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BoolMsg message. + * @function verify + * @memberof meerkat.BoolMsg + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BoolMsg.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.value != null && message.hasOwnProperty("value")) + if (typeof message.value !== "boolean") + return "value: boolean expected"; + return null; + }; + + /** + * Creates a BoolMsg message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BoolMsg + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BoolMsg} BoolMsg + */ + BoolMsg.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BoolMsg) + return object; + var message = new $root.meerkat.BoolMsg(); + if (object.value != null) + message.value = Boolean(object.value); + return message; + }; + + /** + * Creates a plain object from a BoolMsg message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BoolMsg + * @static + * @param {meerkat.BoolMsg} message BoolMsg + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BoolMsg.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.value = false; + if (message.value != null && message.hasOwnProperty("value")) + object.value = message.value; + return object; + }; + + /** + * Converts this BoolMsg to JSON. + * @function toJSON + * @memberof meerkat.BoolMsg + * @instance + * @returns {Object.} JSON object + */ + BoolMsg.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BoolMsg; + })(); + + meerkat.IntMsg = (function() { + + /** + * Properties of an IntMsg. + * @memberof meerkat + * @interface IIntMsg + * @property {number} [value] IntMsg value + */ + + /** + * Constructs a new IntMsg. + * @memberof meerkat + * @classdesc Represents an IntMsg. + * @constructor + * @param {meerkat.IIntMsg=} [properties] Properties to set + */ + function IntMsg(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * IntMsg value. + * @member {number}value + * @memberof meerkat.IntMsg + * @instance + */ + IntMsg.prototype.value = 0; + + /** + * Creates a new IntMsg instance using the specified properties. + * @function create + * @memberof meerkat.IntMsg + * @static + * @param {meerkat.IIntMsg=} [properties] Properties to set + * @returns {meerkat.IntMsg} IntMsg instance + */ + IntMsg.create = function create(properties) { + return new IntMsg(properties); + }; + + /** + * Encodes the specified IntMsg message. Does not implicitly {@link meerkat.IntMsg.verify|verify} messages. + * @function encode + * @memberof meerkat.IntMsg + * @static + * @param {meerkat.IIntMsg} message IntMsg message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + IntMsg.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.value != null && message.hasOwnProperty("value")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.value); + return writer; + }; + + /** + * Encodes the specified IntMsg message, length delimited. Does not implicitly {@link meerkat.IntMsg.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.IntMsg + * @static + * @param {meerkat.IIntMsg} message IntMsg message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + IntMsg.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an IntMsg message from the specified reader or buffer. + * @function decode + * @memberof meerkat.IntMsg + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.IntMsg} IntMsg + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + IntMsg.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.IntMsg(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.value = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an IntMsg message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.IntMsg + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.IntMsg} IntMsg + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + IntMsg.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an IntMsg message. + * @function verify + * @memberof meerkat.IntMsg + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + IntMsg.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.value != null && message.hasOwnProperty("value")) + if (!$util.isInteger(message.value)) + return "value: integer expected"; + return null; + }; + + /** + * Creates an IntMsg message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.IntMsg + * @static + * @param {Object.} object Plain object + * @returns {meerkat.IntMsg} IntMsg + */ + IntMsg.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.IntMsg) + return object; + var message = new $root.meerkat.IntMsg(); + if (object.value != null) + message.value = object.value | 0; + return message; + }; + + /** + * Creates a plain object from an IntMsg message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.IntMsg + * @static + * @param {meerkat.IntMsg} message IntMsg + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + IntMsg.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.value = 0; + if (message.value != null && message.hasOwnProperty("value")) + object.value = message.value; + return object; + }; + + /** + * Converts this IntMsg to JSON. + * @function toJSON + * @memberof meerkat.IntMsg + * @instance + * @returns {Object.} JSON object + */ + IntMsg.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return IntMsg; + })(); + + meerkat.MessageID = (function() { + + /** + * Properties of a MessageID. + * @memberof meerkat + * @interface IMessageID + * @property {Uint8Array} [ID] MessageID ID + */ + + /** + * Constructs a new MessageID. + * @memberof meerkat + * @classdesc Represents a MessageID. + * @constructor + * @param {meerkat.IMessageID=} [properties] Properties to set + */ + function MessageID(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * MessageID ID. + * @member {Uint8Array}ID + * @memberof meerkat.MessageID + * @instance + */ + MessageID.prototype.ID = $util.newBuffer([]); + + /** + * Creates a new MessageID instance using the specified properties. + * @function create + * @memberof meerkat.MessageID + * @static + * @param {meerkat.IMessageID=} [properties] Properties to set + * @returns {meerkat.MessageID} MessageID instance + */ + MessageID.create = function create(properties) { + return new MessageID(properties); + }; + + /** + * Encodes the specified MessageID message. Does not implicitly {@link meerkat.MessageID.verify|verify} messages. + * @function encode + * @memberof meerkat.MessageID + * @static + * @param {meerkat.IMessageID} message MessageID message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageID.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.ID != null && message.hasOwnProperty("ID")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.ID); + return writer; + }; + + /** + * Encodes the specified MessageID message, length delimited. Does not implicitly {@link meerkat.MessageID.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.MessageID + * @static + * @param {meerkat.IMessageID} message MessageID message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageID.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MessageID message from the specified reader or buffer. + * @function decode + * @memberof meerkat.MessageID + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.MessageID} MessageID + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageID.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.MessageID(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.ID = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MessageID message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.MessageID + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.MessageID} MessageID + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageID.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MessageID message. + * @function verify + * @memberof meerkat.MessageID + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MessageID.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.ID != null && message.hasOwnProperty("ID")) + if (!(message.ID && typeof message.ID.length === "number" || $util.isString(message.ID))) + return "ID: buffer expected"; + return null; + }; + + /** + * Creates a MessageID message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.MessageID + * @static + * @param {Object.} object Plain object + * @returns {meerkat.MessageID} MessageID + */ + MessageID.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.MessageID) + return object; + var message = new $root.meerkat.MessageID(); + if (object.ID != null) + if (typeof object.ID === "string") + $util.base64.decode(object.ID, message.ID = $util.newBuffer($util.base64.length(object.ID)), 0); + else if (object.ID.length) + message.ID = object.ID; + return message; + }; + + /** + * Creates a plain object from a MessageID message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.MessageID + * @static + * @param {meerkat.MessageID} message MessageID + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MessageID.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.ID = options.bytes === String ? "" : []; + if (message.ID != null && message.hasOwnProperty("ID")) + object.ID = options.bytes === String ? $util.base64.encode(message.ID, 0, message.ID.length) : options.bytes === Array ? Array.prototype.slice.call(message.ID) : message.ID; + return object; + }; + + /** + * Converts this MessageID to JSON. + * @function toJSON + * @memberof meerkat.MessageID + * @instance + * @returns {Object.} JSON object + */ + MessageID.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return MessageID; + })(); + + meerkat.UnsignedBulletinBoardMessage = (function() { + + /** + * Properties of an UnsignedBulletinBoardMessage. + * @memberof meerkat + * @interface IUnsignedBulletinBoardMessage + * @property {Array.} [tag] UnsignedBulletinBoardMessage tag + * @property {google.protobuf.ITimestamp} [timestamp] UnsignedBulletinBoardMessage timestamp + * @property {Uint8Array} [msgId] UnsignedBulletinBoardMessage msgId + * @property {Uint8Array} [data] UnsignedBulletinBoardMessage data + */ + + /** + * Constructs a new UnsignedBulletinBoardMessage. + * @memberof meerkat + * @classdesc Represents an UnsignedBulletinBoardMessage. + * @constructor + * @param {meerkat.IUnsignedBulletinBoardMessage=} [properties] Properties to set + */ + function UnsignedBulletinBoardMessage(properties) { + this.tag = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * UnsignedBulletinBoardMessage tag. + * @member {Array.}tag + * @memberof meerkat.UnsignedBulletinBoardMessage + * @instance + */ + UnsignedBulletinBoardMessage.prototype.tag = $util.emptyArray; + + /** + * UnsignedBulletinBoardMessage timestamp. + * @member {(google.protobuf.ITimestamp|null|undefined)}timestamp + * @memberof meerkat.UnsignedBulletinBoardMessage + * @instance + */ + UnsignedBulletinBoardMessage.prototype.timestamp = null; + + /** + * UnsignedBulletinBoardMessage msgId. + * @member {Uint8Array}msgId + * @memberof meerkat.UnsignedBulletinBoardMessage + * @instance + */ + UnsignedBulletinBoardMessage.prototype.msgId = $util.newBuffer([]); + + /** + * UnsignedBulletinBoardMessage data. + * @member {Uint8Array}data + * @memberof meerkat.UnsignedBulletinBoardMessage + * @instance + */ + UnsignedBulletinBoardMessage.prototype.data = $util.newBuffer([]); + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * UnsignedBulletinBoardMessage dataType. + * @member {string|undefined} dataType + * @memberof meerkat.UnsignedBulletinBoardMessage + * @instance + */ + Object.defineProperty(UnsignedBulletinBoardMessage.prototype, "dataType", { + get: $util.oneOfGetter($oneOfFields = ["msgId", "data"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new UnsignedBulletinBoardMessage instance using the specified properties. + * @function create + * @memberof meerkat.UnsignedBulletinBoardMessage + * @static + * @param {meerkat.IUnsignedBulletinBoardMessage=} [properties] Properties to set + * @returns {meerkat.UnsignedBulletinBoardMessage} UnsignedBulletinBoardMessage instance + */ + UnsignedBulletinBoardMessage.create = function create(properties) { + return new UnsignedBulletinBoardMessage(properties); + }; + + /** + * Encodes the specified UnsignedBulletinBoardMessage message. Does not implicitly {@link meerkat.UnsignedBulletinBoardMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.UnsignedBulletinBoardMessage + * @static + * @param {meerkat.IUnsignedBulletinBoardMessage} message UnsignedBulletinBoardMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UnsignedBulletinBoardMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.tag != null && message.tag.length) + for (var i = 0; i < message.tag.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.tag[i]); + if (message.timestamp != null && message.hasOwnProperty("timestamp")) + $root.google.protobuf.Timestamp.encode(message.timestamp, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.msgId != null && message.hasOwnProperty("msgId")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.msgId); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified UnsignedBulletinBoardMessage message, length delimited. Does not implicitly {@link meerkat.UnsignedBulletinBoardMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.UnsignedBulletinBoardMessage + * @static + * @param {meerkat.IUnsignedBulletinBoardMessage} message UnsignedBulletinBoardMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UnsignedBulletinBoardMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an UnsignedBulletinBoardMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.UnsignedBulletinBoardMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.UnsignedBulletinBoardMessage} UnsignedBulletinBoardMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UnsignedBulletinBoardMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.UnsignedBulletinBoardMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.tag && message.tag.length)) + message.tag = []; + message.tag.push(reader.string()); + break; + case 2: + message.timestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + case 3: + message.msgId = reader.bytes(); + break; + case 4: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an UnsignedBulletinBoardMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.UnsignedBulletinBoardMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.UnsignedBulletinBoardMessage} UnsignedBulletinBoardMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UnsignedBulletinBoardMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an UnsignedBulletinBoardMessage message. + * @function verify + * @memberof meerkat.UnsignedBulletinBoardMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + UnsignedBulletinBoardMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.tag != null && message.hasOwnProperty("tag")) { + if (!Array.isArray(message.tag)) + return "tag: array expected"; + for (var i = 0; i < message.tag.length; ++i) + if (!$util.isString(message.tag[i])) + return "tag: string[] expected"; + } + if (message.timestamp != null && message.hasOwnProperty("timestamp")) { + var error = $root.google.protobuf.Timestamp.verify(message.timestamp); + if (error) + return "timestamp." + error; + } + if (message.msgId != null && message.hasOwnProperty("msgId")) { + properties.dataType = 1; + if (!(message.msgId && typeof message.msgId.length === "number" || $util.isString(message.msgId))) + return "msgId: buffer expected"; + } + if (message.data != null && message.hasOwnProperty("data")) { + if (properties.dataType === 1) + return "dataType: multiple values"; + properties.dataType = 1; + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + } + return null; + }; + + /** + * Creates an UnsignedBulletinBoardMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.UnsignedBulletinBoardMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.UnsignedBulletinBoardMessage} UnsignedBulletinBoardMessage + */ + UnsignedBulletinBoardMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.UnsignedBulletinBoardMessage) + return object; + var message = new $root.meerkat.UnsignedBulletinBoardMessage(); + if (object.tag) { + if (!Array.isArray(object.tag)) + throw TypeError(".meerkat.UnsignedBulletinBoardMessage.tag: array expected"); + message.tag = []; + for (var i = 0; i < object.tag.length; ++i) + message.tag[i] = String(object.tag[i]); + } + if (object.timestamp != null) { + if (typeof object.timestamp !== "object") + throw TypeError(".meerkat.UnsignedBulletinBoardMessage.timestamp: object expected"); + message.timestamp = $root.google.protobuf.Timestamp.fromObject(object.timestamp); + } + if (object.msgId != null) + if (typeof object.msgId === "string") + $util.base64.decode(object.msgId, message.msgId = $util.newBuffer($util.base64.length(object.msgId)), 0); + else if (object.msgId.length) + message.msgId = object.msgId; + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from an UnsignedBulletinBoardMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.UnsignedBulletinBoardMessage + * @static + * @param {meerkat.UnsignedBulletinBoardMessage} message UnsignedBulletinBoardMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + UnsignedBulletinBoardMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.tag = []; + if (options.defaults) + object.timestamp = null; + if (message.tag && message.tag.length) { + object.tag = []; + for (var j = 0; j < message.tag.length; ++j) + object.tag[j] = message.tag[j]; + } + if (message.timestamp != null && message.hasOwnProperty("timestamp")) + object.timestamp = $root.google.protobuf.Timestamp.toObject(message.timestamp, options); + if (message.msgId != null && message.hasOwnProperty("msgId")) { + object.msgId = options.bytes === String ? $util.base64.encode(message.msgId, 0, message.msgId.length) : options.bytes === Array ? Array.prototype.slice.call(message.msgId) : message.msgId; + if (options.oneofs) + object.dataType = "msgId"; + } + if (message.data != null && message.hasOwnProperty("data")) { + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + if (options.oneofs) + object.dataType = "data"; + } + return object; + }; + + /** + * Converts this UnsignedBulletinBoardMessage to JSON. + * @function toJSON + * @memberof meerkat.UnsignedBulletinBoardMessage + * @instance + * @returns {Object.} JSON object + */ + UnsignedBulletinBoardMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return UnsignedBulletinBoardMessage; + })(); + + meerkat.BulletinBoardMessage = (function() { + + /** + * Properties of a BulletinBoardMessage. + * @memberof meerkat + * @interface IBulletinBoardMessage + * @property {number|Long} [entryNum] BulletinBoardMessage entryNum + * @property {meerkat.IUnsignedBulletinBoardMessage} [msg] BulletinBoardMessage msg + * @property {Array.} [sig] BulletinBoardMessage sig + */ + + /** + * Constructs a new BulletinBoardMessage. + * @memberof meerkat + * @classdesc Represents a BulletinBoardMessage. + * @constructor + * @param {meerkat.IBulletinBoardMessage=} [properties] Properties to set + */ + function BulletinBoardMessage(properties) { + this.sig = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BulletinBoardMessage entryNum. + * @member {number|Long}entryNum + * @memberof meerkat.BulletinBoardMessage + * @instance + */ + BulletinBoardMessage.prototype.entryNum = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * BulletinBoardMessage msg. + * @member {(meerkat.IUnsignedBulletinBoardMessage|null|undefined)}msg + * @memberof meerkat.BulletinBoardMessage + * @instance + */ + BulletinBoardMessage.prototype.msg = null; + + /** + * BulletinBoardMessage sig. + * @member {Array.}sig + * @memberof meerkat.BulletinBoardMessage + * @instance + */ + BulletinBoardMessage.prototype.sig = $util.emptyArray; + + /** + * Creates a new BulletinBoardMessage instance using the specified properties. + * @function create + * @memberof meerkat.BulletinBoardMessage + * @static + * @param {meerkat.IBulletinBoardMessage=} [properties] Properties to set + * @returns {meerkat.BulletinBoardMessage} BulletinBoardMessage instance + */ + BulletinBoardMessage.create = function create(properties) { + return new BulletinBoardMessage(properties); + }; + + /** + * Encodes the specified BulletinBoardMessage message. Does not implicitly {@link meerkat.BulletinBoardMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.BulletinBoardMessage + * @static + * @param {meerkat.IBulletinBoardMessage} message BulletinBoardMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BulletinBoardMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.entryNum != null && message.hasOwnProperty("entryNum")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.entryNum); + if (message.msg != null && message.hasOwnProperty("msg")) + $root.meerkat.UnsignedBulletinBoardMessage.encode(message.msg, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.sig != null && message.sig.length) + for (var i = 0; i < message.sig.length; ++i) + $root.meerkat.Signature.encode(message.sig[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BulletinBoardMessage message, length delimited. Does not implicitly {@link meerkat.BulletinBoardMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BulletinBoardMessage + * @static + * @param {meerkat.IBulletinBoardMessage} message BulletinBoardMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BulletinBoardMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BulletinBoardMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BulletinBoardMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BulletinBoardMessage} BulletinBoardMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BulletinBoardMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BulletinBoardMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.entryNum = reader.int64(); + break; + case 2: + message.msg = $root.meerkat.UnsignedBulletinBoardMessage.decode(reader, reader.uint32()); + break; + case 3: + if (!(message.sig && message.sig.length)) + message.sig = []; + message.sig.push($root.meerkat.Signature.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BulletinBoardMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BulletinBoardMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BulletinBoardMessage} BulletinBoardMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BulletinBoardMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BulletinBoardMessage message. + * @function verify + * @memberof meerkat.BulletinBoardMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BulletinBoardMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.entryNum != null && message.hasOwnProperty("entryNum")) + if (!$util.isInteger(message.entryNum) && !(message.entryNum && $util.isInteger(message.entryNum.low) && $util.isInteger(message.entryNum.high))) + return "entryNum: integer|Long expected"; + if (message.msg != null && message.hasOwnProperty("msg")) { + var error = $root.meerkat.UnsignedBulletinBoardMessage.verify(message.msg); + if (error) + return "msg." + error; + } + if (message.sig != null && message.hasOwnProperty("sig")) { + if (!Array.isArray(message.sig)) + return "sig: array expected"; + for (var i = 0; i < message.sig.length; ++i) { + error = $root.meerkat.Signature.verify(message.sig[i]); + if (error) + return "sig." + error; + } + } + return null; + }; + + /** + * Creates a BulletinBoardMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BulletinBoardMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BulletinBoardMessage} BulletinBoardMessage + */ + BulletinBoardMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BulletinBoardMessage) + return object; + var message = new $root.meerkat.BulletinBoardMessage(); + if (object.entryNum != null) + if ($util.Long) + (message.entryNum = $util.Long.fromValue(object.entryNum)).unsigned = false; + else if (typeof object.entryNum === "string") + message.entryNum = parseInt(object.entryNum, 10); + else if (typeof object.entryNum === "number") + message.entryNum = object.entryNum; + else if (typeof object.entryNum === "object") + message.entryNum = new $util.LongBits(object.entryNum.low >>> 0, object.entryNum.high >>> 0).toNumber(); + if (object.msg != null) { + if (typeof object.msg !== "object") + throw TypeError(".meerkat.BulletinBoardMessage.msg: object expected"); + message.msg = $root.meerkat.UnsignedBulletinBoardMessage.fromObject(object.msg); + } + if (object.sig) { + if (!Array.isArray(object.sig)) + throw TypeError(".meerkat.BulletinBoardMessage.sig: array expected"); + message.sig = []; + for (var i = 0; i < object.sig.length; ++i) { + if (typeof object.sig[i] !== "object") + throw TypeError(".meerkat.BulletinBoardMessage.sig: object expected"); + message.sig[i] = $root.meerkat.Signature.fromObject(object.sig[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a BulletinBoardMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BulletinBoardMessage + * @static + * @param {meerkat.BulletinBoardMessage} message BulletinBoardMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BulletinBoardMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.sig = []; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.entryNum = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.entryNum = options.longs === String ? "0" : 0; + object.msg = null; + } + if (message.entryNum != null && message.hasOwnProperty("entryNum")) + if (typeof message.entryNum === "number") + object.entryNum = options.longs === String ? String(message.entryNum) : message.entryNum; + else + object.entryNum = options.longs === String ? $util.Long.prototype.toString.call(message.entryNum) : options.longs === Number ? new $util.LongBits(message.entryNum.low >>> 0, message.entryNum.high >>> 0).toNumber() : message.entryNum; + if (message.msg != null && message.hasOwnProperty("msg")) + object.msg = $root.meerkat.UnsignedBulletinBoardMessage.toObject(message.msg, options); + if (message.sig && message.sig.length) { + object.sig = []; + for (var j = 0; j < message.sig.length; ++j) + object.sig[j] = $root.meerkat.Signature.toObject(message.sig[j], options); + } + return object; + }; + + /** + * Converts this BulletinBoardMessage to JSON. + * @function toJSON + * @memberof meerkat.BulletinBoardMessage + * @instance + * @returns {Object.} JSON object + */ + BulletinBoardMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BulletinBoardMessage; + })(); + + meerkat.BulletinBoardMessageList = (function() { + + /** + * Properties of a BulletinBoardMessageList. + * @memberof meerkat + * @interface IBulletinBoardMessageList + * @property {Array.} [message] BulletinBoardMessageList message + */ + + /** + * Constructs a new BulletinBoardMessageList. + * @memberof meerkat + * @classdesc Represents a BulletinBoardMessageList. + * @constructor + * @param {meerkat.IBulletinBoardMessageList=} [properties] Properties to set + */ + function BulletinBoardMessageList(properties) { + this.message = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BulletinBoardMessageList message. + * @member {Array.}message + * @memberof meerkat.BulletinBoardMessageList + * @instance + */ + BulletinBoardMessageList.prototype.message = $util.emptyArray; + + /** + * Creates a new BulletinBoardMessageList instance using the specified properties. + * @function create + * @memberof meerkat.BulletinBoardMessageList + * @static + * @param {meerkat.IBulletinBoardMessageList=} [properties] Properties to set + * @returns {meerkat.BulletinBoardMessageList} BulletinBoardMessageList instance + */ + BulletinBoardMessageList.create = function create(properties) { + return new BulletinBoardMessageList(properties); + }; + + /** + * Encodes the specified BulletinBoardMessageList message. Does not implicitly {@link meerkat.BulletinBoardMessageList.verify|verify} messages. + * @function encode + * @memberof meerkat.BulletinBoardMessageList + * @static + * @param {meerkat.IBulletinBoardMessageList} message BulletinBoardMessageList message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BulletinBoardMessageList.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.message != null && message.message.length) + for (var i = 0; i < message.message.length; ++i) + $root.meerkat.BulletinBoardMessage.encode(message.message[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BulletinBoardMessageList message, length delimited. Does not implicitly {@link meerkat.BulletinBoardMessageList.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BulletinBoardMessageList + * @static + * @param {meerkat.IBulletinBoardMessageList} message BulletinBoardMessageList message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BulletinBoardMessageList.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BulletinBoardMessageList message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BulletinBoardMessageList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BulletinBoardMessageList} BulletinBoardMessageList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BulletinBoardMessageList.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BulletinBoardMessageList(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.message && message.message.length)) + message.message = []; + message.message.push($root.meerkat.BulletinBoardMessage.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BulletinBoardMessageList message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BulletinBoardMessageList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BulletinBoardMessageList} BulletinBoardMessageList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BulletinBoardMessageList.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BulletinBoardMessageList message. + * @function verify + * @memberof meerkat.BulletinBoardMessageList + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BulletinBoardMessageList.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.message != null && message.hasOwnProperty("message")) { + if (!Array.isArray(message.message)) + return "message: array expected"; + for (var i = 0; i < message.message.length; ++i) { + var error = $root.meerkat.BulletinBoardMessage.verify(message.message[i]); + if (error) + return "message." + error; + } + } + return null; + }; + + /** + * Creates a BulletinBoardMessageList message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BulletinBoardMessageList + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BulletinBoardMessageList} BulletinBoardMessageList + */ + BulletinBoardMessageList.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BulletinBoardMessageList) + return object; + var message = new $root.meerkat.BulletinBoardMessageList(); + if (object.message) { + if (!Array.isArray(object.message)) + throw TypeError(".meerkat.BulletinBoardMessageList.message: array expected"); + message.message = []; + for (var i = 0; i < object.message.length; ++i) { + if (typeof object.message[i] !== "object") + throw TypeError(".meerkat.BulletinBoardMessageList.message: object expected"); + message.message[i] = $root.meerkat.BulletinBoardMessage.fromObject(object.message[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a BulletinBoardMessageList message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BulletinBoardMessageList + * @static + * @param {meerkat.BulletinBoardMessageList} message BulletinBoardMessageList + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BulletinBoardMessageList.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.message = []; + if (message.message && message.message.length) { + object.message = []; + for (var j = 0; j < message.message.length; ++j) + object.message[j] = $root.meerkat.BulletinBoardMessage.toObject(message.message[j], options); + } + return object; + }; + + /** + * Converts this BulletinBoardMessageList to JSON. + * @function toJSON + * @memberof meerkat.BulletinBoardMessageList + * @instance + * @returns {Object.} JSON object + */ + BulletinBoardMessageList.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BulletinBoardMessageList; + })(); + + /** + * FilterType enum. + * @enum {string} + * @property {number} MSG_ID=0 MSG_ID value + * @property {number} EXACT_ENTRY=1 EXACT_ENTRY value + * @property {number} MAX_ENTRY=2 MAX_ENTRY value + * @property {number} MIN_ENTRY=3 MIN_ENTRY value + * @property {number} SIGNER_ID=4 SIGNER_ID value + * @property {number} TAG=5 TAG value + * @property {number} AFTER_TIME=6 AFTER_TIME value + * @property {number} BEFORE_TIME=7 BEFORE_TIME value + * @property {number} MAX_MESSAGES=8 MAX_MESSAGES value + */ + meerkat.FilterType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "MSG_ID"] = 0; + values[valuesById[1] = "EXACT_ENTRY"] = 1; + values[valuesById[2] = "MAX_ENTRY"] = 2; + values[valuesById[3] = "MIN_ENTRY"] = 3; + values[valuesById[4] = "SIGNER_ID"] = 4; + values[valuesById[5] = "TAG"] = 5; + values[valuesById[6] = "AFTER_TIME"] = 6; + values[valuesById[7] = "BEFORE_TIME"] = 7; + values[valuesById[8] = "MAX_MESSAGES"] = 8; + return values; + })(); + + meerkat.MessageFilter = (function() { + + /** + * Properties of a MessageFilter. + * @memberof meerkat + * @interface IMessageFilter + * @property {meerkat.FilterType} [type] MessageFilter type + * @property {Uint8Array} [id] MessageFilter id + * @property {number|Long} [entry] MessageFilter entry + * @property {string} [tag] MessageFilter tag + * @property {number|Long} [maxMessages] MessageFilter maxMessages + * @property {google.protobuf.ITimestamp} [timestamp] MessageFilter timestamp + */ + + /** + * Constructs a new MessageFilter. + * @memberof meerkat + * @classdesc Represents a MessageFilter. + * @constructor + * @param {meerkat.IMessageFilter=} [properties] Properties to set + */ + function MessageFilter(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * MessageFilter type. + * @member {meerkat.FilterType}type + * @memberof meerkat.MessageFilter + * @instance + */ + MessageFilter.prototype.type = 0; + + /** + * MessageFilter id. + * @member {Uint8Array}id + * @memberof meerkat.MessageFilter + * @instance + */ + MessageFilter.prototype.id = $util.newBuffer([]); + + /** + * MessageFilter entry. + * @member {number|Long}entry + * @memberof meerkat.MessageFilter + * @instance + */ + MessageFilter.prototype.entry = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * MessageFilter tag. + * @member {string}tag + * @memberof meerkat.MessageFilter + * @instance + */ + MessageFilter.prototype.tag = ""; + + /** + * MessageFilter maxMessages. + * @member {number|Long}maxMessages + * @memberof meerkat.MessageFilter + * @instance + */ + MessageFilter.prototype.maxMessages = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * MessageFilter timestamp. + * @member {(google.protobuf.ITimestamp|null|undefined)}timestamp + * @memberof meerkat.MessageFilter + * @instance + */ + MessageFilter.prototype.timestamp = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * MessageFilter filter. + * @member {string|undefined} filter + * @memberof meerkat.MessageFilter + * @instance + */ + Object.defineProperty(MessageFilter.prototype, "filter", { + get: $util.oneOfGetter($oneOfFields = ["id", "entry", "tag", "maxMessages", "timestamp"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new MessageFilter instance using the specified properties. + * @function create + * @memberof meerkat.MessageFilter + * @static + * @param {meerkat.IMessageFilter=} [properties] Properties to set + * @returns {meerkat.MessageFilter} MessageFilter instance + */ + MessageFilter.create = function create(properties) { + return new MessageFilter(properties); + }; + + /** + * Encodes the specified MessageFilter message. Does not implicitly {@link meerkat.MessageFilter.verify|verify} messages. + * @function encode + * @memberof meerkat.MessageFilter + * @static + * @param {meerkat.IMessageFilter} message MessageFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.type != null && message.hasOwnProperty("type")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type); + if (message.id != null && message.hasOwnProperty("id")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.id); + if (message.entry != null && message.hasOwnProperty("entry")) + writer.uint32(/* id 3, wireType 0 =*/24).int64(message.entry); + if (message.tag != null && message.hasOwnProperty("tag")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.tag); + if (message.maxMessages != null && message.hasOwnProperty("maxMessages")) + writer.uint32(/* id 5, wireType 0 =*/40).int64(message.maxMessages); + if (message.timestamp != null && message.hasOwnProperty("timestamp")) + $root.google.protobuf.Timestamp.encode(message.timestamp, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified MessageFilter message, length delimited. Does not implicitly {@link meerkat.MessageFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.MessageFilter + * @static + * @param {meerkat.IMessageFilter} message MessageFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MessageFilter message from the specified reader or buffer. + * @function decode + * @memberof meerkat.MessageFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.MessageFilter} MessageFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageFilter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.MessageFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.int32(); + break; + case 2: + message.id = reader.bytes(); + break; + case 3: + message.entry = reader.int64(); + break; + case 4: + message.tag = reader.string(); + break; + case 5: + message.maxMessages = reader.int64(); + break; + case 6: + message.timestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MessageFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.MessageFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.MessageFilter} MessageFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MessageFilter message. + * @function verify + * @memberof meerkat.MessageFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MessageFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + break; + } + if (message.id != null && message.hasOwnProperty("id")) { + properties.filter = 1; + if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id))) + return "id: buffer expected"; + } + if (message.entry != null && message.hasOwnProperty("entry")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (!$util.isInteger(message.entry) && !(message.entry && $util.isInteger(message.entry.low) && $util.isInteger(message.entry.high))) + return "entry: integer|Long expected"; + } + if (message.tag != null && message.hasOwnProperty("tag")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (!$util.isString(message.tag)) + return "tag: string expected"; + } + if (message.maxMessages != null && message.hasOwnProperty("maxMessages")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (!$util.isInteger(message.maxMessages) && !(message.maxMessages && $util.isInteger(message.maxMessages.low) && $util.isInteger(message.maxMessages.high))) + return "maxMessages: integer|Long expected"; + } + if (message.timestamp != null && message.hasOwnProperty("timestamp")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + var error = $root.google.protobuf.Timestamp.verify(message.timestamp); + if (error) + return "timestamp." + error; + } + return null; + }; + + /** + * Creates a MessageFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.MessageFilter + * @static + * @param {Object.} object Plain object + * @returns {meerkat.MessageFilter} MessageFilter + */ + MessageFilter.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.MessageFilter) + return object; + var message = new $root.meerkat.MessageFilter(); + switch (object.type) { + case "MSG_ID": + case 0: + message.type = 0; + break; + case "EXACT_ENTRY": + case 1: + message.type = 1; + break; + case "MAX_ENTRY": + case 2: + message.type = 2; + break; + case "MIN_ENTRY": + case 3: + message.type = 3; + break; + case "SIGNER_ID": + case 4: + message.type = 4; + break; + case "TAG": + case 5: + message.type = 5; + break; + case "AFTER_TIME": + case 6: + message.type = 6; + break; + case "BEFORE_TIME": + case 7: + message.type = 7; + break; + case "MAX_MESSAGES": + case 8: + message.type = 8; + break; + } + if (object.id != null) + if (typeof object.id === "string") + $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0); + else if (object.id.length) + message.id = object.id; + if (object.entry != null) + if ($util.Long) + (message.entry = $util.Long.fromValue(object.entry)).unsigned = false; + else if (typeof object.entry === "string") + message.entry = parseInt(object.entry, 10); + else if (typeof object.entry === "number") + message.entry = object.entry; + else if (typeof object.entry === "object") + message.entry = new $util.LongBits(object.entry.low >>> 0, object.entry.high >>> 0).toNumber(); + if (object.tag != null) + message.tag = String(object.tag); + if (object.maxMessages != null) + if ($util.Long) + (message.maxMessages = $util.Long.fromValue(object.maxMessages)).unsigned = false; + else if (typeof object.maxMessages === "string") + message.maxMessages = parseInt(object.maxMessages, 10); + else if (typeof object.maxMessages === "number") + message.maxMessages = object.maxMessages; + else if (typeof object.maxMessages === "object") + message.maxMessages = new $util.LongBits(object.maxMessages.low >>> 0, object.maxMessages.high >>> 0).toNumber(); + if (object.timestamp != null) { + if (typeof object.timestamp !== "object") + throw TypeError(".meerkat.MessageFilter.timestamp: object expected"); + message.timestamp = $root.google.protobuf.Timestamp.fromObject(object.timestamp); + } + return message; + }; + + /** + * Creates a plain object from a MessageFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.MessageFilter + * @static + * @param {meerkat.MessageFilter} message MessageFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MessageFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.type = options.enums === String ? "MSG_ID" : 0; + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.meerkat.FilterType[message.type] : message.type; + if (message.id != null && message.hasOwnProperty("id")) { + object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id; + if (options.oneofs) + object.filter = "id"; + } + if (message.entry != null && message.hasOwnProperty("entry")) { + if (typeof message.entry === "number") + object.entry = options.longs === String ? String(message.entry) : message.entry; + else + object.entry = options.longs === String ? $util.Long.prototype.toString.call(message.entry) : options.longs === Number ? new $util.LongBits(message.entry.low >>> 0, message.entry.high >>> 0).toNumber() : message.entry; + if (options.oneofs) + object.filter = "entry"; + } + if (message.tag != null && message.hasOwnProperty("tag")) { + object.tag = message.tag; + if (options.oneofs) + object.filter = "tag"; + } + if (message.maxMessages != null && message.hasOwnProperty("maxMessages")) { + if (typeof message.maxMessages === "number") + object.maxMessages = options.longs === String ? String(message.maxMessages) : message.maxMessages; + else + object.maxMessages = options.longs === String ? $util.Long.prototype.toString.call(message.maxMessages) : options.longs === Number ? new $util.LongBits(message.maxMessages.low >>> 0, message.maxMessages.high >>> 0).toNumber() : message.maxMessages; + if (options.oneofs) + object.filter = "maxMessages"; + } + if (message.timestamp != null && message.hasOwnProperty("timestamp")) { + object.timestamp = $root.google.protobuf.Timestamp.toObject(message.timestamp, options); + if (options.oneofs) + object.filter = "timestamp"; + } + return object; + }; + + /** + * Converts this MessageFilter to JSON. + * @function toJSON + * @memberof meerkat.MessageFilter + * @instance + * @returns {Object.} JSON object + */ + MessageFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return MessageFilter; + })(); + + meerkat.MessageFilterList = (function() { + + /** + * Properties of a MessageFilterList. + * @memberof meerkat + * @interface IMessageFilterList + * @property {Array.} [filter] MessageFilterList filter + */ + + /** + * Constructs a new MessageFilterList. + * @memberof meerkat + * @classdesc Represents a MessageFilterList. + * @constructor + * @param {meerkat.IMessageFilterList=} [properties] Properties to set + */ + function MessageFilterList(properties) { + this.filter = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * MessageFilterList filter. + * @member {Array.}filter + * @memberof meerkat.MessageFilterList + * @instance + */ + MessageFilterList.prototype.filter = $util.emptyArray; + + /** + * Creates a new MessageFilterList instance using the specified properties. + * @function create + * @memberof meerkat.MessageFilterList + * @static + * @param {meerkat.IMessageFilterList=} [properties] Properties to set + * @returns {meerkat.MessageFilterList} MessageFilterList instance + */ + MessageFilterList.create = function create(properties) { + return new MessageFilterList(properties); + }; + + /** + * Encodes the specified MessageFilterList message. Does not implicitly {@link meerkat.MessageFilterList.verify|verify} messages. + * @function encode + * @memberof meerkat.MessageFilterList + * @static + * @param {meerkat.IMessageFilterList} message MessageFilterList message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageFilterList.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.filter != null && message.filter.length) + for (var i = 0; i < message.filter.length; ++i) + $root.meerkat.MessageFilter.encode(message.filter[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified MessageFilterList message, length delimited. Does not implicitly {@link meerkat.MessageFilterList.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.MessageFilterList + * @static + * @param {meerkat.IMessageFilterList} message MessageFilterList message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageFilterList.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MessageFilterList message from the specified reader or buffer. + * @function decode + * @memberof meerkat.MessageFilterList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.MessageFilterList} MessageFilterList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageFilterList.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.MessageFilterList(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.filter && message.filter.length)) + message.filter = []; + message.filter.push($root.meerkat.MessageFilter.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MessageFilterList message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.MessageFilterList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.MessageFilterList} MessageFilterList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageFilterList.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MessageFilterList message. + * @function verify + * @memberof meerkat.MessageFilterList + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MessageFilterList.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.filter != null && message.hasOwnProperty("filter")) { + if (!Array.isArray(message.filter)) + return "filter: array expected"; + for (var i = 0; i < message.filter.length; ++i) { + var error = $root.meerkat.MessageFilter.verify(message.filter[i]); + if (error) + return "filter." + error; + } + } + return null; + }; + + /** + * Creates a MessageFilterList message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.MessageFilterList + * @static + * @param {Object.} object Plain object + * @returns {meerkat.MessageFilterList} MessageFilterList + */ + MessageFilterList.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.MessageFilterList) + return object; + var message = new $root.meerkat.MessageFilterList(); + if (object.filter) { + if (!Array.isArray(object.filter)) + throw TypeError(".meerkat.MessageFilterList.filter: array expected"); + message.filter = []; + for (var i = 0; i < object.filter.length; ++i) { + if (typeof object.filter[i] !== "object") + throw TypeError(".meerkat.MessageFilterList.filter: object expected"); + message.filter[i] = $root.meerkat.MessageFilter.fromObject(object.filter[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a MessageFilterList message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.MessageFilterList + * @static + * @param {meerkat.MessageFilterList} message MessageFilterList + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MessageFilterList.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.filter = []; + if (message.filter && message.filter.length) { + object.filter = []; + for (var j = 0; j < message.filter.length; ++j) + object.filter[j] = $root.meerkat.MessageFilter.toObject(message.filter[j], options); + } + return object; + }; + + /** + * Converts this MessageFilterList to JSON. + * @function toJSON + * @memberof meerkat.MessageFilterList + * @instance + * @returns {Object.} JSON object + */ + MessageFilterList.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return MessageFilterList; + })(); + + meerkat.BeginBatchMessage = (function() { + + /** + * Properties of a BeginBatchMessage. + * @memberof meerkat + * @interface IBeginBatchMessage + * @property {Array.} [tag] BeginBatchMessage tag + */ + + /** + * Constructs a new BeginBatchMessage. + * @memberof meerkat + * @classdesc Represents a BeginBatchMessage. + * @constructor + * @param {meerkat.IBeginBatchMessage=} [properties] Properties to set + */ + function BeginBatchMessage(properties) { + this.tag = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BeginBatchMessage tag. + * @member {Array.}tag + * @memberof meerkat.BeginBatchMessage + * @instance + */ + BeginBatchMessage.prototype.tag = $util.emptyArray; + + /** + * Creates a new BeginBatchMessage instance using the specified properties. + * @function create + * @memberof meerkat.BeginBatchMessage + * @static + * @param {meerkat.IBeginBatchMessage=} [properties] Properties to set + * @returns {meerkat.BeginBatchMessage} BeginBatchMessage instance + */ + BeginBatchMessage.create = function create(properties) { + return new BeginBatchMessage(properties); + }; + + /** + * Encodes the specified BeginBatchMessage message. Does not implicitly {@link meerkat.BeginBatchMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.BeginBatchMessage + * @static + * @param {meerkat.IBeginBatchMessage} message BeginBatchMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BeginBatchMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.tag != null && message.tag.length) + for (var i = 0; i < message.tag.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.tag[i]); + return writer; + }; + + /** + * Encodes the specified BeginBatchMessage message, length delimited. Does not implicitly {@link meerkat.BeginBatchMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BeginBatchMessage + * @static + * @param {meerkat.IBeginBatchMessage} message BeginBatchMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BeginBatchMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BeginBatchMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BeginBatchMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BeginBatchMessage} BeginBatchMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BeginBatchMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BeginBatchMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.tag && message.tag.length)) + message.tag = []; + message.tag.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BeginBatchMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BeginBatchMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BeginBatchMessage} BeginBatchMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BeginBatchMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BeginBatchMessage message. + * @function verify + * @memberof meerkat.BeginBatchMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BeginBatchMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.tag != null && message.hasOwnProperty("tag")) { + if (!Array.isArray(message.tag)) + return "tag: array expected"; + for (var i = 0; i < message.tag.length; ++i) + if (!$util.isString(message.tag[i])) + return "tag: string[] expected"; + } + return null; + }; + + /** + * Creates a BeginBatchMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BeginBatchMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BeginBatchMessage} BeginBatchMessage + */ + BeginBatchMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BeginBatchMessage) + return object; + var message = new $root.meerkat.BeginBatchMessage(); + if (object.tag) { + if (!Array.isArray(object.tag)) + throw TypeError(".meerkat.BeginBatchMessage.tag: array expected"); + message.tag = []; + for (var i = 0; i < object.tag.length; ++i) + message.tag[i] = String(object.tag[i]); + } + return message; + }; + + /** + * Creates a plain object from a BeginBatchMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BeginBatchMessage + * @static + * @param {meerkat.BeginBatchMessage} message BeginBatchMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BeginBatchMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.tag = []; + if (message.tag && message.tag.length) { + object.tag = []; + for (var j = 0; j < message.tag.length; ++j) + object.tag[j] = message.tag[j]; + } + return object; + }; + + /** + * Converts this BeginBatchMessage to JSON. + * @function toJSON + * @memberof meerkat.BeginBatchMessage + * @instance + * @returns {Object.} JSON object + */ + BeginBatchMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BeginBatchMessage; + })(); + + meerkat.CloseBatchMessage = (function() { + + /** + * Properties of a CloseBatchMessage. + * @memberof meerkat + * @interface ICloseBatchMessage + * @property {number|Long} [batchId] CloseBatchMessage batchId + * @property {number} [batchLength] CloseBatchMessage batchLength + * @property {google.protobuf.ITimestamp} [timestamp] CloseBatchMessage timestamp + * @property {Array.} [sig] CloseBatchMessage sig + */ + + /** + * Constructs a new CloseBatchMessage. + * @memberof meerkat + * @classdesc Represents a CloseBatchMessage. + * @constructor + * @param {meerkat.ICloseBatchMessage=} [properties] Properties to set + */ + function CloseBatchMessage(properties) { + this.sig = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CloseBatchMessage batchId. + * @member {number|Long}batchId + * @memberof meerkat.CloseBatchMessage + * @instance + */ + CloseBatchMessage.prototype.batchId = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * CloseBatchMessage batchLength. + * @member {number}batchLength + * @memberof meerkat.CloseBatchMessage + * @instance + */ + CloseBatchMessage.prototype.batchLength = 0; + + /** + * CloseBatchMessage timestamp. + * @member {(google.protobuf.ITimestamp|null|undefined)}timestamp + * @memberof meerkat.CloseBatchMessage + * @instance + */ + CloseBatchMessage.prototype.timestamp = null; + + /** + * CloseBatchMessage sig. + * @member {Array.}sig + * @memberof meerkat.CloseBatchMessage + * @instance + */ + CloseBatchMessage.prototype.sig = $util.emptyArray; + + /** + * Creates a new CloseBatchMessage instance using the specified properties. + * @function create + * @memberof meerkat.CloseBatchMessage + * @static + * @param {meerkat.ICloseBatchMessage=} [properties] Properties to set + * @returns {meerkat.CloseBatchMessage} CloseBatchMessage instance + */ + CloseBatchMessage.create = function create(properties) { + return new CloseBatchMessage(properties); + }; + + /** + * Encodes the specified CloseBatchMessage message. Does not implicitly {@link meerkat.CloseBatchMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.CloseBatchMessage + * @static + * @param {meerkat.ICloseBatchMessage} message CloseBatchMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CloseBatchMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.batchId != null && message.hasOwnProperty("batchId")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.batchId); + if (message.batchLength != null && message.hasOwnProperty("batchLength")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.batchLength); + if (message.timestamp != null && message.hasOwnProperty("timestamp")) + $root.google.protobuf.Timestamp.encode(message.timestamp, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.sig != null && message.sig.length) + for (var i = 0; i < message.sig.length; ++i) + $root.meerkat.Signature.encode(message.sig[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified CloseBatchMessage message, length delimited. Does not implicitly {@link meerkat.CloseBatchMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.CloseBatchMessage + * @static + * @param {meerkat.ICloseBatchMessage} message CloseBatchMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CloseBatchMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CloseBatchMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.CloseBatchMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.CloseBatchMessage} CloseBatchMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CloseBatchMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.CloseBatchMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.batchId = reader.int64(); + break; + case 2: + message.batchLength = reader.int32(); + break; + case 3: + message.timestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + case 4: + if (!(message.sig && message.sig.length)) + message.sig = []; + message.sig.push($root.meerkat.Signature.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CloseBatchMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.CloseBatchMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.CloseBatchMessage} CloseBatchMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CloseBatchMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CloseBatchMessage message. + * @function verify + * @memberof meerkat.CloseBatchMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CloseBatchMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.batchId != null && message.hasOwnProperty("batchId")) + if (!$util.isInteger(message.batchId) && !(message.batchId && $util.isInteger(message.batchId.low) && $util.isInteger(message.batchId.high))) + return "batchId: integer|Long expected"; + if (message.batchLength != null && message.hasOwnProperty("batchLength")) + if (!$util.isInteger(message.batchLength)) + return "batchLength: integer expected"; + if (message.timestamp != null && message.hasOwnProperty("timestamp")) { + var error = $root.google.protobuf.Timestamp.verify(message.timestamp); + if (error) + return "timestamp." + error; + } + if (message.sig != null && message.hasOwnProperty("sig")) { + if (!Array.isArray(message.sig)) + return "sig: array expected"; + for (var i = 0; i < message.sig.length; ++i) { + error = $root.meerkat.Signature.verify(message.sig[i]); + if (error) + return "sig." + error; + } + } + return null; + }; + + /** + * Creates a CloseBatchMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.CloseBatchMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.CloseBatchMessage} CloseBatchMessage + */ + CloseBatchMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.CloseBatchMessage) + return object; + var message = new $root.meerkat.CloseBatchMessage(); + if (object.batchId != null) + if ($util.Long) + (message.batchId = $util.Long.fromValue(object.batchId)).unsigned = false; + else if (typeof object.batchId === "string") + message.batchId = parseInt(object.batchId, 10); + else if (typeof object.batchId === "number") + message.batchId = object.batchId; + else if (typeof object.batchId === "object") + message.batchId = new $util.LongBits(object.batchId.low >>> 0, object.batchId.high >>> 0).toNumber(); + if (object.batchLength != null) + message.batchLength = object.batchLength | 0; + if (object.timestamp != null) { + if (typeof object.timestamp !== "object") + throw TypeError(".meerkat.CloseBatchMessage.timestamp: object expected"); + message.timestamp = $root.google.protobuf.Timestamp.fromObject(object.timestamp); + } + if (object.sig) { + if (!Array.isArray(object.sig)) + throw TypeError(".meerkat.CloseBatchMessage.sig: array expected"); + message.sig = []; + for (var i = 0; i < object.sig.length; ++i) { + if (typeof object.sig[i] !== "object") + throw TypeError(".meerkat.CloseBatchMessage.sig: object expected"); + message.sig[i] = $root.meerkat.Signature.fromObject(object.sig[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a CloseBatchMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.CloseBatchMessage + * @static + * @param {meerkat.CloseBatchMessage} message CloseBatchMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CloseBatchMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.sig = []; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.batchId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.batchId = options.longs === String ? "0" : 0; + object.batchLength = 0; + object.timestamp = null; + } + if (message.batchId != null && message.hasOwnProperty("batchId")) + if (typeof message.batchId === "number") + object.batchId = options.longs === String ? String(message.batchId) : message.batchId; + else + object.batchId = options.longs === String ? $util.Long.prototype.toString.call(message.batchId) : options.longs === Number ? new $util.LongBits(message.batchId.low >>> 0, message.batchId.high >>> 0).toNumber() : message.batchId; + if (message.batchLength != null && message.hasOwnProperty("batchLength")) + object.batchLength = message.batchLength; + if (message.timestamp != null && message.hasOwnProperty("timestamp")) + object.timestamp = $root.google.protobuf.Timestamp.toObject(message.timestamp, options); + if (message.sig && message.sig.length) { + object.sig = []; + for (var j = 0; j < message.sig.length; ++j) + object.sig[j] = $root.meerkat.Signature.toObject(message.sig[j], options); + } + return object; + }; + + /** + * Converts this CloseBatchMessage to JSON. + * @function toJSON + * @memberof meerkat.CloseBatchMessage + * @instance + * @returns {Object.} JSON object + */ + CloseBatchMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return CloseBatchMessage; + })(); + + meerkat.BatchChunk = (function() { + + /** + * Properties of a BatchChunk. + * @memberof meerkat + * @interface IBatchChunk + * @property {Uint8Array} [data] BatchChunk data + */ + + /** + * Constructs a new BatchChunk. + * @memberof meerkat + * @classdesc Represents a BatchChunk. + * @constructor + * @param {meerkat.IBatchChunk=} [properties] Properties to set + */ + function BatchChunk(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BatchChunk data. + * @member {Uint8Array}data + * @memberof meerkat.BatchChunk + * @instance + */ + BatchChunk.prototype.data = $util.newBuffer([]); + + /** + * Creates a new BatchChunk instance using the specified properties. + * @function create + * @memberof meerkat.BatchChunk + * @static + * @param {meerkat.IBatchChunk=} [properties] Properties to set + * @returns {meerkat.BatchChunk} BatchChunk instance + */ + BatchChunk.create = function create(properties) { + return new BatchChunk(properties); + }; + + /** + * Encodes the specified BatchChunk message. Does not implicitly {@link meerkat.BatchChunk.verify|verify} messages. + * @function encode + * @memberof meerkat.BatchChunk + * @static + * @param {meerkat.IBatchChunk} message BatchChunk message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BatchChunk.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified BatchChunk message, length delimited. Does not implicitly {@link meerkat.BatchChunk.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BatchChunk + * @static + * @param {meerkat.IBatchChunk} message BatchChunk message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BatchChunk.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BatchChunk message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BatchChunk + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BatchChunk} BatchChunk + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BatchChunk.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BatchChunk(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BatchChunk message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BatchChunk + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BatchChunk} BatchChunk + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BatchChunk.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BatchChunk message. + * @function verify + * @memberof meerkat.BatchChunk + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BatchChunk.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates a BatchChunk message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BatchChunk + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BatchChunk} BatchChunk + */ + BatchChunk.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BatchChunk) + return object; + var message = new $root.meerkat.BatchChunk(); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from a BatchChunk message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BatchChunk + * @static + * @param {meerkat.BatchChunk} message BatchChunk + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BatchChunk.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.data = options.bytes === String ? "" : []; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this BatchChunk to JSON. + * @function toJSON + * @memberof meerkat.BatchChunk + * @instance + * @returns {Object.} JSON object + */ + BatchChunk.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BatchChunk; + })(); + + meerkat.BatchChunkList = (function() { + + /** + * Properties of a BatchChunkList. + * @memberof meerkat + * @interface IBatchChunkList + * @property {Array.} [data] BatchChunkList data + */ + + /** + * Constructs a new BatchChunkList. + * @memberof meerkat + * @classdesc Represents a BatchChunkList. + * @constructor + * @param {meerkat.IBatchChunkList=} [properties] Properties to set + */ + function BatchChunkList(properties) { + this.data = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BatchChunkList data. + * @member {Array.}data + * @memberof meerkat.BatchChunkList + * @instance + */ + BatchChunkList.prototype.data = $util.emptyArray; + + /** + * Creates a new BatchChunkList instance using the specified properties. + * @function create + * @memberof meerkat.BatchChunkList + * @static + * @param {meerkat.IBatchChunkList=} [properties] Properties to set + * @returns {meerkat.BatchChunkList} BatchChunkList instance + */ + BatchChunkList.create = function create(properties) { + return new BatchChunkList(properties); + }; + + /** + * Encodes the specified BatchChunkList message. Does not implicitly {@link meerkat.BatchChunkList.verify|verify} messages. + * @function encode + * @memberof meerkat.BatchChunkList + * @static + * @param {meerkat.IBatchChunkList} message BatchChunkList message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BatchChunkList.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && message.data.length) + for (var i = 0; i < message.data.length; ++i) + $root.meerkat.BatchChunk.encode(message.data[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BatchChunkList message, length delimited. Does not implicitly {@link meerkat.BatchChunkList.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BatchChunkList + * @static + * @param {meerkat.IBatchChunkList} message BatchChunkList message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BatchChunkList.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BatchChunkList message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BatchChunkList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BatchChunkList} BatchChunkList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BatchChunkList.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BatchChunkList(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.data && message.data.length)) + message.data = []; + message.data.push($root.meerkat.BatchChunk.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BatchChunkList message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BatchChunkList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BatchChunkList} BatchChunkList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BatchChunkList.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BatchChunkList message. + * @function verify + * @memberof meerkat.BatchChunkList + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BatchChunkList.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.data != null && message.hasOwnProperty("data")) { + if (!Array.isArray(message.data)) + return "data: array expected"; + for (var i = 0; i < message.data.length; ++i) { + var error = $root.meerkat.BatchChunk.verify(message.data[i]); + if (error) + return "data." + error; + } + } + return null; + }; + + /** + * Creates a BatchChunkList message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BatchChunkList + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BatchChunkList} BatchChunkList + */ + BatchChunkList.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BatchChunkList) + return object; + var message = new $root.meerkat.BatchChunkList(); + if (object.data) { + if (!Array.isArray(object.data)) + throw TypeError(".meerkat.BatchChunkList.data: array expected"); + message.data = []; + for (var i = 0; i < object.data.length; ++i) { + if (typeof object.data[i] !== "object") + throw TypeError(".meerkat.BatchChunkList.data: object expected"); + message.data[i] = $root.meerkat.BatchChunk.fromObject(object.data[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a BatchChunkList message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BatchChunkList + * @static + * @param {meerkat.BatchChunkList} message BatchChunkList + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BatchChunkList.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.data = []; + if (message.data && message.data.length) { + object.data = []; + for (var j = 0; j < message.data.length; ++j) + object.data[j] = $root.meerkat.BatchChunk.toObject(message.data[j], options); + } + return object; + }; + + /** + * Converts this BatchChunkList to JSON. + * @function toJSON + * @memberof meerkat.BatchChunkList + * @instance + * @returns {Object.} JSON object + */ + BatchChunkList.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BatchChunkList; + })(); + + meerkat.BatchMessage = (function() { + + /** + * Properties of a BatchMessage. + * @memberof meerkat + * @interface IBatchMessage + * @property {number|Long} [batchId] BatchMessage batchId + * @property {number} [serialNum] BatchMessage serialNum + * @property {meerkat.IBatchChunk} [data] BatchMessage data + */ + + /** + * Constructs a new BatchMessage. + * @memberof meerkat + * @classdesc Represents a BatchMessage. + * @constructor + * @param {meerkat.IBatchMessage=} [properties] Properties to set + */ + function BatchMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BatchMessage batchId. + * @member {number|Long}batchId + * @memberof meerkat.BatchMessage + * @instance + */ + BatchMessage.prototype.batchId = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * BatchMessage serialNum. + * @member {number}serialNum + * @memberof meerkat.BatchMessage + * @instance + */ + BatchMessage.prototype.serialNum = 0; + + /** + * BatchMessage data. + * @member {(meerkat.IBatchChunk|null|undefined)}data + * @memberof meerkat.BatchMessage + * @instance + */ + BatchMessage.prototype.data = null; + + /** + * Creates a new BatchMessage instance using the specified properties. + * @function create + * @memberof meerkat.BatchMessage + * @static + * @param {meerkat.IBatchMessage=} [properties] Properties to set + * @returns {meerkat.BatchMessage} BatchMessage instance + */ + BatchMessage.create = function create(properties) { + return new BatchMessage(properties); + }; + + /** + * Encodes the specified BatchMessage message. Does not implicitly {@link meerkat.BatchMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.BatchMessage + * @static + * @param {meerkat.IBatchMessage} message BatchMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BatchMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.batchId != null && message.hasOwnProperty("batchId")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.batchId); + if (message.serialNum != null && message.hasOwnProperty("serialNum")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.serialNum); + if (message.data != null && message.hasOwnProperty("data")) + $root.meerkat.BatchChunk.encode(message.data, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BatchMessage message, length delimited. Does not implicitly {@link meerkat.BatchMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BatchMessage + * @static + * @param {meerkat.IBatchMessage} message BatchMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BatchMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BatchMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BatchMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BatchMessage} BatchMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BatchMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BatchMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.batchId = reader.int64(); + break; + case 2: + message.serialNum = reader.int32(); + break; + case 3: + message.data = $root.meerkat.BatchChunk.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BatchMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BatchMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BatchMessage} BatchMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BatchMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BatchMessage message. + * @function verify + * @memberof meerkat.BatchMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BatchMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.batchId != null && message.hasOwnProperty("batchId")) + if (!$util.isInteger(message.batchId) && !(message.batchId && $util.isInteger(message.batchId.low) && $util.isInteger(message.batchId.high))) + return "batchId: integer|Long expected"; + if (message.serialNum != null && message.hasOwnProperty("serialNum")) + if (!$util.isInteger(message.serialNum)) + return "serialNum: integer expected"; + if (message.data != null && message.hasOwnProperty("data")) { + var error = $root.meerkat.BatchChunk.verify(message.data); + if (error) + return "data." + error; + } + return null; + }; + + /** + * Creates a BatchMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BatchMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BatchMessage} BatchMessage + */ + BatchMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BatchMessage) + return object; + var message = new $root.meerkat.BatchMessage(); + if (object.batchId != null) + if ($util.Long) + (message.batchId = $util.Long.fromValue(object.batchId)).unsigned = false; + else if (typeof object.batchId === "string") + message.batchId = parseInt(object.batchId, 10); + else if (typeof object.batchId === "number") + message.batchId = object.batchId; + else if (typeof object.batchId === "object") + message.batchId = new $util.LongBits(object.batchId.low >>> 0, object.batchId.high >>> 0).toNumber(); + if (object.serialNum != null) + message.serialNum = object.serialNum | 0; + if (object.data != null) { + if (typeof object.data !== "object") + throw TypeError(".meerkat.BatchMessage.data: object expected"); + message.data = $root.meerkat.BatchChunk.fromObject(object.data); + } + return message; + }; + + /** + * Creates a plain object from a BatchMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BatchMessage + * @static + * @param {meerkat.BatchMessage} message BatchMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BatchMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.batchId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.batchId = options.longs === String ? "0" : 0; + object.serialNum = 0; + object.data = null; + } + if (message.batchId != null && message.hasOwnProperty("batchId")) + if (typeof message.batchId === "number") + object.batchId = options.longs === String ? String(message.batchId) : message.batchId; + else + object.batchId = options.longs === String ? $util.Long.prototype.toString.call(message.batchId) : options.longs === Number ? new $util.LongBits(message.batchId.low >>> 0, message.batchId.high >>> 0).toNumber() : message.batchId; + if (message.serialNum != null && message.hasOwnProperty("serialNum")) + object.serialNum = message.serialNum; + if (message.data != null && message.hasOwnProperty("data")) + object.data = $root.meerkat.BatchChunk.toObject(message.data, options); + return object; + }; + + /** + * Converts this BatchMessage to JSON. + * @function toJSON + * @memberof meerkat.BatchMessage + * @instance + * @returns {Object.} JSON object + */ + BatchMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BatchMessage; + })(); + + meerkat.SingleSyncQuery = (function() { + + /** + * Properties of a SingleSyncQuery. + * @memberof meerkat + * @interface ISingleSyncQuery + * @property {google.protobuf.ITimestamp} [timeOfSync] SingleSyncQuery timeOfSync + * @property {number|Long} [checksum] SingleSyncQuery checksum + */ + + /** + * Constructs a new SingleSyncQuery. + * @memberof meerkat + * @classdesc Represents a SingleSyncQuery. + * @constructor + * @param {meerkat.ISingleSyncQuery=} [properties] Properties to set + */ + function SingleSyncQuery(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SingleSyncQuery timeOfSync. + * @member {(google.protobuf.ITimestamp|null|undefined)}timeOfSync + * @memberof meerkat.SingleSyncQuery + * @instance + */ + SingleSyncQuery.prototype.timeOfSync = null; + + /** + * SingleSyncQuery checksum. + * @member {number|Long}checksum + * @memberof meerkat.SingleSyncQuery + * @instance + */ + SingleSyncQuery.prototype.checksum = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * Creates a new SingleSyncQuery instance using the specified properties. + * @function create + * @memberof meerkat.SingleSyncQuery + * @static + * @param {meerkat.ISingleSyncQuery=} [properties] Properties to set + * @returns {meerkat.SingleSyncQuery} SingleSyncQuery instance + */ + SingleSyncQuery.create = function create(properties) { + return new SingleSyncQuery(properties); + }; + + /** + * Encodes the specified SingleSyncQuery message. Does not implicitly {@link meerkat.SingleSyncQuery.verify|verify} messages. + * @function encode + * @memberof meerkat.SingleSyncQuery + * @static + * @param {meerkat.ISingleSyncQuery} message SingleSyncQuery message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SingleSyncQuery.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.timeOfSync != null && message.hasOwnProperty("timeOfSync")) + $root.google.protobuf.Timestamp.encode(message.timeOfSync, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.checksum != null && message.hasOwnProperty("checksum")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.checksum); + return writer; + }; + + /** + * Encodes the specified SingleSyncQuery message, length delimited. Does not implicitly {@link meerkat.SingleSyncQuery.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.SingleSyncQuery + * @static + * @param {meerkat.ISingleSyncQuery} message SingleSyncQuery message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SingleSyncQuery.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SingleSyncQuery message from the specified reader or buffer. + * @function decode + * @memberof meerkat.SingleSyncQuery + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.SingleSyncQuery} SingleSyncQuery + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SingleSyncQuery.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.SingleSyncQuery(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.timeOfSync = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + case 2: + message.checksum = reader.int64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SingleSyncQuery message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.SingleSyncQuery + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.SingleSyncQuery} SingleSyncQuery + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SingleSyncQuery.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SingleSyncQuery message. + * @function verify + * @memberof meerkat.SingleSyncQuery + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SingleSyncQuery.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.timeOfSync != null && message.hasOwnProperty("timeOfSync")) { + var error = $root.google.protobuf.Timestamp.verify(message.timeOfSync); + if (error) + return "timeOfSync." + error; + } + if (message.checksum != null && message.hasOwnProperty("checksum")) + if (!$util.isInteger(message.checksum) && !(message.checksum && $util.isInteger(message.checksum.low) && $util.isInteger(message.checksum.high))) + return "checksum: integer|Long expected"; + return null; + }; + + /** + * Creates a SingleSyncQuery message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.SingleSyncQuery + * @static + * @param {Object.} object Plain object + * @returns {meerkat.SingleSyncQuery} SingleSyncQuery + */ + SingleSyncQuery.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.SingleSyncQuery) + return object; + var message = new $root.meerkat.SingleSyncQuery(); + if (object.timeOfSync != null) { + if (typeof object.timeOfSync !== "object") + throw TypeError(".meerkat.SingleSyncQuery.timeOfSync: object expected"); + message.timeOfSync = $root.google.protobuf.Timestamp.fromObject(object.timeOfSync); + } + if (object.checksum != null) + if ($util.Long) + (message.checksum = $util.Long.fromValue(object.checksum)).unsigned = false; + else if (typeof object.checksum === "string") + message.checksum = parseInt(object.checksum, 10); + else if (typeof object.checksum === "number") + message.checksum = object.checksum; + else if (typeof object.checksum === "object") + message.checksum = new $util.LongBits(object.checksum.low >>> 0, object.checksum.high >>> 0).toNumber(); + return message; + }; + + /** + * Creates a plain object from a SingleSyncQuery message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.SingleSyncQuery + * @static + * @param {meerkat.SingleSyncQuery} message SingleSyncQuery + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SingleSyncQuery.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.timeOfSync = null; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.checksum = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.checksum = options.longs === String ? "0" : 0; + } + if (message.timeOfSync != null && message.hasOwnProperty("timeOfSync")) + object.timeOfSync = $root.google.protobuf.Timestamp.toObject(message.timeOfSync, options); + if (message.checksum != null && message.hasOwnProperty("checksum")) + if (typeof message.checksum === "number") + object.checksum = options.longs === String ? String(message.checksum) : message.checksum; + else + object.checksum = options.longs === String ? $util.Long.prototype.toString.call(message.checksum) : options.longs === Number ? new $util.LongBits(message.checksum.low >>> 0, message.checksum.high >>> 0).toNumber() : message.checksum; + return object; + }; + + /** + * Converts this SingleSyncQuery to JSON. + * @function toJSON + * @memberof meerkat.SingleSyncQuery + * @instance + * @returns {Object.} JSON object + */ + SingleSyncQuery.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return SingleSyncQuery; + })(); + + meerkat.SyncQuery = (function() { + + /** + * Properties of a SyncQuery. + * @memberof meerkat + * @interface ISyncQuery + * @property {meerkat.IMessageFilterList} [filterList] SyncQuery filterList + * @property {Array.} [query] SyncQuery query + */ + + /** + * Constructs a new SyncQuery. + * @memberof meerkat + * @classdesc Represents a SyncQuery. + * @constructor + * @param {meerkat.ISyncQuery=} [properties] Properties to set + */ + function SyncQuery(properties) { + this.query = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SyncQuery filterList. + * @member {(meerkat.IMessageFilterList|null|undefined)}filterList + * @memberof meerkat.SyncQuery + * @instance + */ + SyncQuery.prototype.filterList = null; + + /** + * SyncQuery query. + * @member {Array.}query + * @memberof meerkat.SyncQuery + * @instance + */ + SyncQuery.prototype.query = $util.emptyArray; + + /** + * Creates a new SyncQuery instance using the specified properties. + * @function create + * @memberof meerkat.SyncQuery + * @static + * @param {meerkat.ISyncQuery=} [properties] Properties to set + * @returns {meerkat.SyncQuery} SyncQuery instance + */ + SyncQuery.create = function create(properties) { + return new SyncQuery(properties); + }; + + /** + * Encodes the specified SyncQuery message. Does not implicitly {@link meerkat.SyncQuery.verify|verify} messages. + * @function encode + * @memberof meerkat.SyncQuery + * @static + * @param {meerkat.ISyncQuery} message SyncQuery message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SyncQuery.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.filterList != null && message.hasOwnProperty("filterList")) + $root.meerkat.MessageFilterList.encode(message.filterList, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.query != null && message.query.length) + for (var i = 0; i < message.query.length; ++i) + $root.meerkat.SingleSyncQuery.encode(message.query[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified SyncQuery message, length delimited. Does not implicitly {@link meerkat.SyncQuery.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.SyncQuery + * @static + * @param {meerkat.ISyncQuery} message SyncQuery message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SyncQuery.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SyncQuery message from the specified reader or buffer. + * @function decode + * @memberof meerkat.SyncQuery + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.SyncQuery} SyncQuery + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SyncQuery.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.SyncQuery(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.filterList = $root.meerkat.MessageFilterList.decode(reader, reader.uint32()); + break; + case 2: + if (!(message.query && message.query.length)) + message.query = []; + message.query.push($root.meerkat.SingleSyncQuery.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SyncQuery message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.SyncQuery + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.SyncQuery} SyncQuery + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SyncQuery.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SyncQuery message. + * @function verify + * @memberof meerkat.SyncQuery + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SyncQuery.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.filterList != null && message.hasOwnProperty("filterList")) { + var error = $root.meerkat.MessageFilterList.verify(message.filterList); + if (error) + return "filterList." + error; + } + if (message.query != null && message.hasOwnProperty("query")) { + if (!Array.isArray(message.query)) + return "query: array expected"; + for (var i = 0; i < message.query.length; ++i) { + error = $root.meerkat.SingleSyncQuery.verify(message.query[i]); + if (error) + return "query." + error; + } + } + return null; + }; + + /** + * Creates a SyncQuery message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.SyncQuery + * @static + * @param {Object.} object Plain object + * @returns {meerkat.SyncQuery} SyncQuery + */ + SyncQuery.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.SyncQuery) + return object; + var message = new $root.meerkat.SyncQuery(); + if (object.filterList != null) { + if (typeof object.filterList !== "object") + throw TypeError(".meerkat.SyncQuery.filterList: object expected"); + message.filterList = $root.meerkat.MessageFilterList.fromObject(object.filterList); + } + if (object.query) { + if (!Array.isArray(object.query)) + throw TypeError(".meerkat.SyncQuery.query: array expected"); + message.query = []; + for (var i = 0; i < object.query.length; ++i) { + if (typeof object.query[i] !== "object") + throw TypeError(".meerkat.SyncQuery.query: object expected"); + message.query[i] = $root.meerkat.SingleSyncQuery.fromObject(object.query[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a SyncQuery message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.SyncQuery + * @static + * @param {meerkat.SyncQuery} message SyncQuery + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SyncQuery.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.query = []; + if (options.defaults) + object.filterList = null; + if (message.filterList != null && message.hasOwnProperty("filterList")) + object.filterList = $root.meerkat.MessageFilterList.toObject(message.filterList, options); + if (message.query && message.query.length) { + object.query = []; + for (var j = 0; j < message.query.length; ++j) + object.query[j] = $root.meerkat.SingleSyncQuery.toObject(message.query[j], options); + } + return object; + }; + + /** + * Converts this SyncQuery to JSON. + * @function toJSON + * @memberof meerkat.SyncQuery + * @instance + * @returns {Object.} JSON object + */ + SyncQuery.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return SyncQuery; + })(); + + meerkat.GenerateSyncQueryParams = (function() { + + /** + * Properties of a GenerateSyncQueryParams. + * @memberof meerkat + * @interface IGenerateSyncQueryParams + * @property {meerkat.IMessageFilterList} [filterList] GenerateSyncQueryParams filterList + * @property {Array.} [breakpointList] GenerateSyncQueryParams breakpointList + */ + + /** + * Constructs a new GenerateSyncQueryParams. + * @memberof meerkat + * @classdesc Represents a GenerateSyncQueryParams. + * @constructor + * @param {meerkat.IGenerateSyncQueryParams=} [properties] Properties to set + */ + function GenerateSyncQueryParams(properties) { + this.breakpointList = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GenerateSyncQueryParams filterList. + * @member {(meerkat.IMessageFilterList|null|undefined)}filterList + * @memberof meerkat.GenerateSyncQueryParams + * @instance + */ + GenerateSyncQueryParams.prototype.filterList = null; + + /** + * GenerateSyncQueryParams breakpointList. + * @member {Array.}breakpointList + * @memberof meerkat.GenerateSyncQueryParams + * @instance + */ + GenerateSyncQueryParams.prototype.breakpointList = $util.emptyArray; + + /** + * Creates a new GenerateSyncQueryParams instance using the specified properties. + * @function create + * @memberof meerkat.GenerateSyncQueryParams + * @static + * @param {meerkat.IGenerateSyncQueryParams=} [properties] Properties to set + * @returns {meerkat.GenerateSyncQueryParams} GenerateSyncQueryParams instance + */ + GenerateSyncQueryParams.create = function create(properties) { + return new GenerateSyncQueryParams(properties); + }; + + /** + * Encodes the specified GenerateSyncQueryParams message. Does not implicitly {@link meerkat.GenerateSyncQueryParams.verify|verify} messages. + * @function encode + * @memberof meerkat.GenerateSyncQueryParams + * @static + * @param {meerkat.IGenerateSyncQueryParams} message GenerateSyncQueryParams message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GenerateSyncQueryParams.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.filterList != null && message.hasOwnProperty("filterList")) + $root.meerkat.MessageFilterList.encode(message.filterList, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.breakpointList != null && message.breakpointList.length) { + writer.uint32(/* id 2, wireType 2 =*/18).fork(); + for (var i = 0; i < message.breakpointList.length; ++i) + writer.float(message.breakpointList[i]); + writer.ldelim(); + } + return writer; + }; + + /** + * Encodes the specified GenerateSyncQueryParams message, length delimited. Does not implicitly {@link meerkat.GenerateSyncQueryParams.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.GenerateSyncQueryParams + * @static + * @param {meerkat.IGenerateSyncQueryParams} message GenerateSyncQueryParams message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GenerateSyncQueryParams.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GenerateSyncQueryParams message from the specified reader or buffer. + * @function decode + * @memberof meerkat.GenerateSyncQueryParams + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.GenerateSyncQueryParams} GenerateSyncQueryParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GenerateSyncQueryParams.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.GenerateSyncQueryParams(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.filterList = $root.meerkat.MessageFilterList.decode(reader, reader.uint32()); + break; + case 2: + if (!(message.breakpointList && message.breakpointList.length)) + message.breakpointList = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.breakpointList.push(reader.float()); + } else + message.breakpointList.push(reader.float()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GenerateSyncQueryParams message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.GenerateSyncQueryParams + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.GenerateSyncQueryParams} GenerateSyncQueryParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GenerateSyncQueryParams.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GenerateSyncQueryParams message. + * @function verify + * @memberof meerkat.GenerateSyncQueryParams + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GenerateSyncQueryParams.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.filterList != null && message.hasOwnProperty("filterList")) { + var error = $root.meerkat.MessageFilterList.verify(message.filterList); + if (error) + return "filterList." + error; + } + if (message.breakpointList != null && message.hasOwnProperty("breakpointList")) { + if (!Array.isArray(message.breakpointList)) + return "breakpointList: array expected"; + for (var i = 0; i < message.breakpointList.length; ++i) + if (typeof message.breakpointList[i] !== "number") + return "breakpointList: number[] expected"; + } + return null; + }; + + /** + * Creates a GenerateSyncQueryParams message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.GenerateSyncQueryParams + * @static + * @param {Object.} object Plain object + * @returns {meerkat.GenerateSyncQueryParams} GenerateSyncQueryParams + */ + GenerateSyncQueryParams.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.GenerateSyncQueryParams) + return object; + var message = new $root.meerkat.GenerateSyncQueryParams(); + if (object.filterList != null) { + if (typeof object.filterList !== "object") + throw TypeError(".meerkat.GenerateSyncQueryParams.filterList: object expected"); + message.filterList = $root.meerkat.MessageFilterList.fromObject(object.filterList); + } + if (object.breakpointList) { + if (!Array.isArray(object.breakpointList)) + throw TypeError(".meerkat.GenerateSyncQueryParams.breakpointList: array expected"); + message.breakpointList = []; + for (var i = 0; i < object.breakpointList.length; ++i) + message.breakpointList[i] = Number(object.breakpointList[i]); + } + return message; + }; + + /** + * Creates a plain object from a GenerateSyncQueryParams message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.GenerateSyncQueryParams + * @static + * @param {meerkat.GenerateSyncQueryParams} message GenerateSyncQueryParams + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GenerateSyncQueryParams.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.breakpointList = []; + if (options.defaults) + object.filterList = null; + if (message.filterList != null && message.hasOwnProperty("filterList")) + object.filterList = $root.meerkat.MessageFilterList.toObject(message.filterList, options); + if (message.breakpointList && message.breakpointList.length) { + object.breakpointList = []; + for (var j = 0; j < message.breakpointList.length; ++j) + object.breakpointList[j] = options.json && !isFinite(message.breakpointList[j]) ? String(message.breakpointList[j]) : message.breakpointList[j]; + } + return object; + }; + + /** + * Converts this GenerateSyncQueryParams to JSON. + * @function toJSON + * @memberof meerkat.GenerateSyncQueryParams + * @instance + * @returns {Object.} JSON object + */ + GenerateSyncQueryParams.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GenerateSyncQueryParams; + })(); + + meerkat.SyncQueryResponse = (function() { + + /** + * Properties of a SyncQueryResponse. + * @memberof meerkat + * @interface ISyncQueryResponse + * @property {number|Long} [lastEntryNum] SyncQueryResponse lastEntryNum + * @property {google.protobuf.ITimestamp} [lastTimeOfSync] SyncQueryResponse lastTimeOfSync + */ + + /** + * Constructs a new SyncQueryResponse. + * @memberof meerkat + * @classdesc Represents a SyncQueryResponse. + * @constructor + * @param {meerkat.ISyncQueryResponse=} [properties] Properties to set + */ + function SyncQueryResponse(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SyncQueryResponse lastEntryNum. + * @member {number|Long}lastEntryNum + * @memberof meerkat.SyncQueryResponse + * @instance + */ + SyncQueryResponse.prototype.lastEntryNum = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * SyncQueryResponse lastTimeOfSync. + * @member {(google.protobuf.ITimestamp|null|undefined)}lastTimeOfSync + * @memberof meerkat.SyncQueryResponse + * @instance + */ + SyncQueryResponse.prototype.lastTimeOfSync = null; + + /** + * Creates a new SyncQueryResponse instance using the specified properties. + * @function create + * @memberof meerkat.SyncQueryResponse + * @static + * @param {meerkat.ISyncQueryResponse=} [properties] Properties to set + * @returns {meerkat.SyncQueryResponse} SyncQueryResponse instance + */ + SyncQueryResponse.create = function create(properties) { + return new SyncQueryResponse(properties); + }; + + /** + * Encodes the specified SyncQueryResponse message. Does not implicitly {@link meerkat.SyncQueryResponse.verify|verify} messages. + * @function encode + * @memberof meerkat.SyncQueryResponse + * @static + * @param {meerkat.ISyncQueryResponse} message SyncQueryResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SyncQueryResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.lastEntryNum != null && message.hasOwnProperty("lastEntryNum")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.lastEntryNum); + if (message.lastTimeOfSync != null && message.hasOwnProperty("lastTimeOfSync")) + $root.google.protobuf.Timestamp.encode(message.lastTimeOfSync, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified SyncQueryResponse message, length delimited. Does not implicitly {@link meerkat.SyncQueryResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.SyncQueryResponse + * @static + * @param {meerkat.ISyncQueryResponse} message SyncQueryResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SyncQueryResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SyncQueryResponse message from the specified reader or buffer. + * @function decode + * @memberof meerkat.SyncQueryResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.SyncQueryResponse} SyncQueryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SyncQueryResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.SyncQueryResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.lastEntryNum = reader.int64(); + break; + case 2: + message.lastTimeOfSync = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SyncQueryResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.SyncQueryResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.SyncQueryResponse} SyncQueryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SyncQueryResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SyncQueryResponse message. + * @function verify + * @memberof meerkat.SyncQueryResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SyncQueryResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.lastEntryNum != null && message.hasOwnProperty("lastEntryNum")) + if (!$util.isInteger(message.lastEntryNum) && !(message.lastEntryNum && $util.isInteger(message.lastEntryNum.low) && $util.isInteger(message.lastEntryNum.high))) + return "lastEntryNum: integer|Long expected"; + if (message.lastTimeOfSync != null && message.hasOwnProperty("lastTimeOfSync")) { + var error = $root.google.protobuf.Timestamp.verify(message.lastTimeOfSync); + if (error) + return "lastTimeOfSync." + error; + } + return null; + }; + + /** + * Creates a SyncQueryResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.SyncQueryResponse + * @static + * @param {Object.} object Plain object + * @returns {meerkat.SyncQueryResponse} SyncQueryResponse + */ + SyncQueryResponse.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.SyncQueryResponse) + return object; + var message = new $root.meerkat.SyncQueryResponse(); + if (object.lastEntryNum != null) + if ($util.Long) + (message.lastEntryNum = $util.Long.fromValue(object.lastEntryNum)).unsigned = false; + else if (typeof object.lastEntryNum === "string") + message.lastEntryNum = parseInt(object.lastEntryNum, 10); + else if (typeof object.lastEntryNum === "number") + message.lastEntryNum = object.lastEntryNum; + else if (typeof object.lastEntryNum === "object") + message.lastEntryNum = new $util.LongBits(object.lastEntryNum.low >>> 0, object.lastEntryNum.high >>> 0).toNumber(); + if (object.lastTimeOfSync != null) { + if (typeof object.lastTimeOfSync !== "object") + throw TypeError(".meerkat.SyncQueryResponse.lastTimeOfSync: object expected"); + message.lastTimeOfSync = $root.google.protobuf.Timestamp.fromObject(object.lastTimeOfSync); + } + return message; + }; + + /** + * Creates a plain object from a SyncQueryResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.SyncQueryResponse + * @static + * @param {meerkat.SyncQueryResponse} message SyncQueryResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SyncQueryResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.lastEntryNum = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.lastEntryNum = options.longs === String ? "0" : 0; + object.lastTimeOfSync = null; + } + if (message.lastEntryNum != null && message.hasOwnProperty("lastEntryNum")) + if (typeof message.lastEntryNum === "number") + object.lastEntryNum = options.longs === String ? String(message.lastEntryNum) : message.lastEntryNum; + else + object.lastEntryNum = options.longs === String ? $util.Long.prototype.toString.call(message.lastEntryNum) : options.longs === Number ? new $util.LongBits(message.lastEntryNum.low >>> 0, message.lastEntryNum.high >>> 0).toNumber() : message.lastEntryNum; + if (message.lastTimeOfSync != null && message.hasOwnProperty("lastTimeOfSync")) + object.lastTimeOfSync = $root.google.protobuf.Timestamp.toObject(message.lastTimeOfSync, options); + return object; + }; + + /** + * Converts this SyncQueryResponse to JSON. + * @function toJSON + * @memberof meerkat.SyncQueryResponse + * @instance + * @returns {Object.} JSON object + */ + SyncQueryResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return SyncQueryResponse; + })(); + + meerkat.BatchQuery = (function() { + + /** + * Properties of a BatchQuery. + * @memberof meerkat + * @interface IBatchQuery + * @property {meerkat.IMessageID} [msgID] BatchQuery msgID + * @property {number} [startPosition] BatchQuery startPosition + */ + + /** + * Constructs a new BatchQuery. + * @memberof meerkat + * @classdesc Represents a BatchQuery. + * @constructor + * @param {meerkat.IBatchQuery=} [properties] Properties to set + */ + function BatchQuery(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BatchQuery msgID. + * @member {(meerkat.IMessageID|null|undefined)}msgID + * @memberof meerkat.BatchQuery + * @instance + */ + BatchQuery.prototype.msgID = null; + + /** + * BatchQuery startPosition. + * @member {number}startPosition + * @memberof meerkat.BatchQuery + * @instance + */ + BatchQuery.prototype.startPosition = 0; + + /** + * Creates a new BatchQuery instance using the specified properties. + * @function create + * @memberof meerkat.BatchQuery + * @static + * @param {meerkat.IBatchQuery=} [properties] Properties to set + * @returns {meerkat.BatchQuery} BatchQuery instance + */ + BatchQuery.create = function create(properties) { + return new BatchQuery(properties); + }; + + /** + * Encodes the specified BatchQuery message. Does not implicitly {@link meerkat.BatchQuery.verify|verify} messages. + * @function encode + * @memberof meerkat.BatchQuery + * @static + * @param {meerkat.IBatchQuery} message BatchQuery message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BatchQuery.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.msgID != null && message.hasOwnProperty("msgID")) + $root.meerkat.MessageID.encode(message.msgID, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.startPosition != null && message.hasOwnProperty("startPosition")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.startPosition); + return writer; + }; + + /** + * Encodes the specified BatchQuery message, length delimited. Does not implicitly {@link meerkat.BatchQuery.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BatchQuery + * @static + * @param {meerkat.IBatchQuery} message BatchQuery message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BatchQuery.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BatchQuery message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BatchQuery + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BatchQuery} BatchQuery + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BatchQuery.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BatchQuery(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.msgID = $root.meerkat.MessageID.decode(reader, reader.uint32()); + break; + case 2: + message.startPosition = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BatchQuery message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BatchQuery + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BatchQuery} BatchQuery + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BatchQuery.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BatchQuery message. + * @function verify + * @memberof meerkat.BatchQuery + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BatchQuery.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.msgID != null && message.hasOwnProperty("msgID")) { + var error = $root.meerkat.MessageID.verify(message.msgID); + if (error) + return "msgID." + error; + } + if (message.startPosition != null && message.hasOwnProperty("startPosition")) + if (!$util.isInteger(message.startPosition)) + return "startPosition: integer expected"; + return null; + }; + + /** + * Creates a BatchQuery message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BatchQuery + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BatchQuery} BatchQuery + */ + BatchQuery.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BatchQuery) + return object; + var message = new $root.meerkat.BatchQuery(); + if (object.msgID != null) { + if (typeof object.msgID !== "object") + throw TypeError(".meerkat.BatchQuery.msgID: object expected"); + message.msgID = $root.meerkat.MessageID.fromObject(object.msgID); + } + if (object.startPosition != null) + message.startPosition = object.startPosition | 0; + return message; + }; + + /** + * Creates a plain object from a BatchQuery message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BatchQuery + * @static + * @param {meerkat.BatchQuery} message BatchQuery + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BatchQuery.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.msgID = null; + object.startPosition = 0; + } + if (message.msgID != null && message.hasOwnProperty("msgID")) + object.msgID = $root.meerkat.MessageID.toObject(message.msgID, options); + if (message.startPosition != null && message.hasOwnProperty("startPosition")) + object.startPosition = message.startPosition; + return object; + }; + + /** + * Converts this BatchQuery to JSON. + * @function toJSON + * @memberof meerkat.BatchQuery + * @instance + * @returns {Object.} JSON object + */ + BatchQuery.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BatchQuery; + })(); + + meerkat.ServerStatus = (function() { + + /** + * Properties of a ServerStatus. + * @memberof meerkat + * @interface IServerStatus + * @property {meerkat.ServerStatus.Mode} [mode] ServerStatus mode + * @property {string} [name] ServerStatus name + * @property {meerkat.ISignatureVerificationKey} [pk] ServerStatus pk + */ + + /** + * Constructs a new ServerStatus. + * @memberof meerkat + * @classdesc Represents a ServerStatus. + * @constructor + * @param {meerkat.IServerStatus=} [properties] Properties to set + */ + function ServerStatus(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ServerStatus mode. + * @member {meerkat.ServerStatus.Mode}mode + * @memberof meerkat.ServerStatus + * @instance + */ + ServerStatus.prototype.mode = 0; + + /** + * ServerStatus name. + * @member {string}name + * @memberof meerkat.ServerStatus + * @instance + */ + ServerStatus.prototype.name = ""; + + /** + * ServerStatus pk. + * @member {(meerkat.ISignatureVerificationKey|null|undefined)}pk + * @memberof meerkat.ServerStatus + * @instance + */ + ServerStatus.prototype.pk = null; + + /** + * Creates a new ServerStatus instance using the specified properties. + * @function create + * @memberof meerkat.ServerStatus + * @static + * @param {meerkat.IServerStatus=} [properties] Properties to set + * @returns {meerkat.ServerStatus} ServerStatus instance + */ + ServerStatus.create = function create(properties) { + return new ServerStatus(properties); + }; + + /** + * Encodes the specified ServerStatus message. Does not implicitly {@link meerkat.ServerStatus.verify|verify} messages. + * @function encode + * @memberof meerkat.ServerStatus + * @static + * @param {meerkat.IServerStatus} message ServerStatus message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ServerStatus.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.mode != null && message.hasOwnProperty("mode")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.mode); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.name); + if (message.pk != null && message.hasOwnProperty("pk")) + $root.meerkat.SignatureVerificationKey.encode(message.pk, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ServerStatus message, length delimited. Does not implicitly {@link meerkat.ServerStatus.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.ServerStatus + * @static + * @param {meerkat.IServerStatus} message ServerStatus message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ServerStatus.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ServerStatus message from the specified reader or buffer. + * @function decode + * @memberof meerkat.ServerStatus + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.ServerStatus} ServerStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ServerStatus.decode = function decode(reader, length) { + console.log("Decoding", reader); + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + + console.log("Len", reader.len); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ServerStatus(); + + while (reader.pos < end) { + + + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.mode = reader.int32(); + break; + case 2: + message.name = reader.string(); + break; + case 3: + message.pk = $root.meerkat.SignatureVerificationKey.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ServerStatus message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.ServerStatus + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.ServerStatus} ServerStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ServerStatus.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ServerStatus message. + * @function verify + * @memberof meerkat.ServerStatus + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ServerStatus.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.mode != null && message.hasOwnProperty("mode")) + switch (message.mode) { + default: + return "mode: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.pk != null && message.hasOwnProperty("pk")) { + var error = $root.meerkat.SignatureVerificationKey.verify(message.pk); + if (error) + return "pk." + error; + } + return null; + }; + + /** + * Creates a ServerStatus message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.ServerStatus + * @static + * @param {Object.} object Plain object + * @returns {meerkat.ServerStatus} ServerStatus + */ + ServerStatus.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.ServerStatus) + return object; + var message = new $root.meerkat.ServerStatus(); + switch (object.mode) { + case "MODE_SETUP_AUTH": + case 0: + message.mode = 0; + break; + case "MODE_SETUP_DB": + case 1: + message.mode = 1; + break; + case "MODE_RUNNING": + case 2: + message.mode = 2; + break; + } + if (object.name != null) + message.name = String(object.name); + if (object.pk != null) { + if (typeof object.pk !== "object") + throw TypeError(".meerkat.ServerStatus.pk: object expected"); + message.pk = $root.meerkat.SignatureVerificationKey.fromObject(object.pk); + } + return message; + }; + + /** + * Creates a plain object from a ServerStatus message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.ServerStatus + * @static + * @param {meerkat.ServerStatus} message ServerStatus + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ServerStatus.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.mode = options.enums === String ? "MODE_SETUP_AUTH" : 0; + object.name = ""; + object.pk = null; + } + if (message.mode != null && message.hasOwnProperty("mode")) + object.mode = options.enums === String ? $root.meerkat.ServerStatus.Mode[message.mode] : message.mode; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.pk != null && message.hasOwnProperty("pk")) + object.pk = $root.meerkat.SignatureVerificationKey.toObject(message.pk, options); + return object; + }; + + /** + * Converts this ServerStatus to JSON. + * @function toJSON + * @memberof meerkat.ServerStatus + * @instance + * @returns {Object.} JSON object + */ + ServerStatus.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Mode enum. + * @enum {string} + * @property {number} MODE_SETUP_AUTH=0 MODE_SETUP_AUTH value + * @property {number} MODE_SETUP_DB=1 MODE_SETUP_DB value + * @property {number} MODE_RUNNING=2 MODE_RUNNING value + */ + ServerStatus.Mode = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "MODE_SETUP_AUTH"] = 0; + values[valuesById[1] = "MODE_SETUP_DB"] = 1; + values[valuesById[2] = "MODE_RUNNING"] = 2; + return values; + })(); + + return ServerStatus; + })(); + + meerkat.BroadcastMessage = (function() { + + /** + * Properties of a BroadcastMessage. + * @memberof meerkat + * @interface IBroadcastMessage + * @property {number} [sender] BroadcastMessage sender + * @property {number} [destination] BroadcastMessage destination + * @property {boolean} [isPrivate] BroadcastMessage isPrivate + * @property {Uint8Array} [payload] BroadcastMessage payload + */ + + /** + * Constructs a new BroadcastMessage. + * @memberof meerkat + * @classdesc Represents a BroadcastMessage. + * @constructor + * @param {meerkat.IBroadcastMessage=} [properties] Properties to set + */ + function BroadcastMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BroadcastMessage sender. + * @member {number}sender + * @memberof meerkat.BroadcastMessage + * @instance + */ + BroadcastMessage.prototype.sender = 0; + + /** + * BroadcastMessage destination. + * @member {number}destination + * @memberof meerkat.BroadcastMessage + * @instance + */ + BroadcastMessage.prototype.destination = 0; + + /** + * BroadcastMessage isPrivate. + * @member {boolean}isPrivate + * @memberof meerkat.BroadcastMessage + * @instance + */ + BroadcastMessage.prototype.isPrivate = false; + + /** + * BroadcastMessage payload. + * @member {Uint8Array}payload + * @memberof meerkat.BroadcastMessage + * @instance + */ + BroadcastMessage.prototype.payload = $util.newBuffer([]); + + /** + * Creates a new BroadcastMessage instance using the specified properties. + * @function create + * @memberof meerkat.BroadcastMessage + * @static + * @param {meerkat.IBroadcastMessage=} [properties] Properties to set + * @returns {meerkat.BroadcastMessage} BroadcastMessage instance + */ + BroadcastMessage.create = function create(properties) { + return new BroadcastMessage(properties); + }; + + /** + * Encodes the specified BroadcastMessage message. Does not implicitly {@link meerkat.BroadcastMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.BroadcastMessage + * @static + * @param {meerkat.IBroadcastMessage} message BroadcastMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BroadcastMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.sender != null && message.hasOwnProperty("sender")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.sender); + if (message.destination != null && message.hasOwnProperty("destination")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.destination); + if (message.isPrivate != null && message.hasOwnProperty("isPrivate")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.isPrivate); + if (message.payload != null && message.hasOwnProperty("payload")) + writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.payload); + return writer; + }; + + /** + * Encodes the specified BroadcastMessage message, length delimited. Does not implicitly {@link meerkat.BroadcastMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BroadcastMessage + * @static + * @param {meerkat.IBroadcastMessage} message BroadcastMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BroadcastMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BroadcastMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BroadcastMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BroadcastMessage} BroadcastMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BroadcastMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BroadcastMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.sender = reader.int32(); + break; + case 2: + message.destination = reader.int32(); + break; + case 3: + message.isPrivate = reader.bool(); + break; + case 5: + message.payload = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BroadcastMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BroadcastMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BroadcastMessage} BroadcastMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BroadcastMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BroadcastMessage message. + * @function verify + * @memberof meerkat.BroadcastMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BroadcastMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.sender != null && message.hasOwnProperty("sender")) + if (!$util.isInteger(message.sender)) + return "sender: integer expected"; + if (message.destination != null && message.hasOwnProperty("destination")) + if (!$util.isInteger(message.destination)) + return "destination: integer expected"; + if (message.isPrivate != null && message.hasOwnProperty("isPrivate")) + if (typeof message.isPrivate !== "boolean") + return "isPrivate: boolean expected"; + if (message.payload != null && message.hasOwnProperty("payload")) + if (!(message.payload && typeof message.payload.length === "number" || $util.isString(message.payload))) + return "payload: buffer expected"; + return null; + }; + + /** + * Creates a BroadcastMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BroadcastMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BroadcastMessage} BroadcastMessage + */ + BroadcastMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BroadcastMessage) + return object; + var message = new $root.meerkat.BroadcastMessage(); + if (object.sender != null) + message.sender = object.sender | 0; + if (object.destination != null) + message.destination = object.destination | 0; + if (object.isPrivate != null) + message.isPrivate = Boolean(object.isPrivate); + if (object.payload != null) + if (typeof object.payload === "string") + $util.base64.decode(object.payload, message.payload = $util.newBuffer($util.base64.length(object.payload)), 0); + else if (object.payload.length) + message.payload = object.payload; + return message; + }; + + /** + * Creates a plain object from a BroadcastMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BroadcastMessage + * @static + * @param {meerkat.BroadcastMessage} message BroadcastMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BroadcastMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.sender = 0; + object.destination = 0; + object.isPrivate = false; + object.payload = options.bytes === String ? "" : []; + } + if (message.sender != null && message.hasOwnProperty("sender")) + object.sender = message.sender; + if (message.destination != null && message.hasOwnProperty("destination")) + object.destination = message.destination; + if (message.isPrivate != null && message.hasOwnProperty("isPrivate")) + object.isPrivate = message.isPrivate; + if (message.payload != null && message.hasOwnProperty("payload")) + object.payload = options.bytes === String ? $util.base64.encode(message.payload, 0, message.payload.length) : options.bytes === Array ? Array.prototype.slice.call(message.payload) : message.payload; + return object; + }; + + /** + * Converts this BroadcastMessage to JSON. + * @function toJSON + * @memberof meerkat.BroadcastMessage + * @instance + * @returns {Object.} JSON object + */ + BroadcastMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BroadcastMessage; + })(); + + meerkat.ElGamalPublicKey = (function() { + + /** + * Properties of an ElGamalPublicKey. + * @memberof meerkat + * @interface IElGamalPublicKey + * @property {Uint8Array} [subjectPublicKeyInfo] ElGamalPublicKey subjectPublicKeyInfo + */ + + /** + * Constructs a new ElGamalPublicKey. + * @memberof meerkat + * @classdesc Represents an ElGamalPublicKey. + * @constructor + * @param {meerkat.IElGamalPublicKey=} [properties] Properties to set + */ + function ElGamalPublicKey(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ElGamalPublicKey subjectPublicKeyInfo. + * @member {Uint8Array}subjectPublicKeyInfo + * @memberof meerkat.ElGamalPublicKey + * @instance + */ + ElGamalPublicKey.prototype.subjectPublicKeyInfo = $util.newBuffer([]); + + /** + * Creates a new ElGamalPublicKey instance using the specified properties. + * @function create + * @memberof meerkat.ElGamalPublicKey + * @static + * @param {meerkat.IElGamalPublicKey=} [properties] Properties to set + * @returns {meerkat.ElGamalPublicKey} ElGamalPublicKey instance + */ + ElGamalPublicKey.create = function create(properties) { + return new ElGamalPublicKey(properties); + }; + + /** + * Encodes the specified ElGamalPublicKey message. Does not implicitly {@link meerkat.ElGamalPublicKey.verify|verify} messages. + * @function encode + * @memberof meerkat.ElGamalPublicKey + * @static + * @param {meerkat.IElGamalPublicKey} message ElGamalPublicKey message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ElGamalPublicKey.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.subjectPublicKeyInfo != null && message.hasOwnProperty("subjectPublicKeyInfo")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.subjectPublicKeyInfo); + return writer; + }; + + /** + * Encodes the specified ElGamalPublicKey message, length delimited. Does not implicitly {@link meerkat.ElGamalPublicKey.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.ElGamalPublicKey + * @static + * @param {meerkat.IElGamalPublicKey} message ElGamalPublicKey message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ElGamalPublicKey.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ElGamalPublicKey message from the specified reader or buffer. + * @function decode + * @memberof meerkat.ElGamalPublicKey + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.ElGamalPublicKey} ElGamalPublicKey + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ElGamalPublicKey.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ElGamalPublicKey(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.subjectPublicKeyInfo = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ElGamalPublicKey message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.ElGamalPublicKey + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.ElGamalPublicKey} ElGamalPublicKey + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ElGamalPublicKey.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ElGamalPublicKey message. + * @function verify + * @memberof meerkat.ElGamalPublicKey + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ElGamalPublicKey.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.subjectPublicKeyInfo != null && message.hasOwnProperty("subjectPublicKeyInfo")) + if (!(message.subjectPublicKeyInfo && typeof message.subjectPublicKeyInfo.length === "number" || $util.isString(message.subjectPublicKeyInfo))) + return "subjectPublicKeyInfo: buffer expected"; + return null; + }; + + /** + * Creates an ElGamalPublicKey message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.ElGamalPublicKey + * @static + * @param {Object.} object Plain object + * @returns {meerkat.ElGamalPublicKey} ElGamalPublicKey + */ + ElGamalPublicKey.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.ElGamalPublicKey) + return object; + var message = new $root.meerkat.ElGamalPublicKey(); + if (object.subjectPublicKeyInfo != null) + if (typeof object.subjectPublicKeyInfo === "string") + $util.base64.decode(object.subjectPublicKeyInfo, message.subjectPublicKeyInfo = $util.newBuffer($util.base64.length(object.subjectPublicKeyInfo)), 0); + else if (object.subjectPublicKeyInfo.length) + message.subjectPublicKeyInfo = object.subjectPublicKeyInfo; + return message; + }; + + /** + * Creates a plain object from an ElGamalPublicKey message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.ElGamalPublicKey + * @static + * @param {meerkat.ElGamalPublicKey} message ElGamalPublicKey + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ElGamalPublicKey.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.subjectPublicKeyInfo = options.bytes === String ? "" : []; + if (message.subjectPublicKeyInfo != null && message.hasOwnProperty("subjectPublicKeyInfo")) + object.subjectPublicKeyInfo = options.bytes === String ? $util.base64.encode(message.subjectPublicKeyInfo, 0, message.subjectPublicKeyInfo.length) : options.bytes === Array ? Array.prototype.slice.call(message.subjectPublicKeyInfo) : message.subjectPublicKeyInfo; + return object; + }; + + /** + * Converts this ElGamalPublicKey to JSON. + * @function toJSON + * @memberof meerkat.ElGamalPublicKey + * @instance + * @returns {Object.} JSON object + */ + ElGamalPublicKey.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ElGamalPublicKey; + })(); + + meerkat.GroupElement = (function() { + + /** + * Properties of a GroupElement. + * @memberof meerkat + * @interface IGroupElement + * @property {Uint8Array} [data] GroupElement data + */ + + /** + * Constructs a new GroupElement. + * @memberof meerkat + * @classdesc Represents a GroupElement. + * @constructor + * @param {meerkat.IGroupElement=} [properties] Properties to set + */ + function GroupElement(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GroupElement data. + * @member {Uint8Array}data + * @memberof meerkat.GroupElement + * @instance + */ + GroupElement.prototype.data = $util.newBuffer([]); + + /** + * Creates a new GroupElement instance using the specified properties. + * @function create + * @memberof meerkat.GroupElement + * @static + * @param {meerkat.IGroupElement=} [properties] Properties to set + * @returns {meerkat.GroupElement} GroupElement instance + */ + GroupElement.create = function create(properties) { + return new GroupElement(properties); + }; + + /** + * Encodes the specified GroupElement message. Does not implicitly {@link meerkat.GroupElement.verify|verify} messages. + * @function encode + * @memberof meerkat.GroupElement + * @static + * @param {meerkat.IGroupElement} message GroupElement message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GroupElement.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified GroupElement message, length delimited. Does not implicitly {@link meerkat.GroupElement.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.GroupElement + * @static + * @param {meerkat.IGroupElement} message GroupElement message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GroupElement.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GroupElement message from the specified reader or buffer. + * @function decode + * @memberof meerkat.GroupElement + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.GroupElement} GroupElement + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GroupElement.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.GroupElement(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GroupElement message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.GroupElement + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.GroupElement} GroupElement + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GroupElement.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GroupElement message. + * @function verify + * @memberof meerkat.GroupElement + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GroupElement.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates a GroupElement message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.GroupElement + * @static + * @param {Object.} object Plain object + * @returns {meerkat.GroupElement} GroupElement + */ + GroupElement.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.GroupElement) + return object; + var message = new $root.meerkat.GroupElement(); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from a GroupElement message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.GroupElement + * @static + * @param {meerkat.GroupElement} message GroupElement + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GroupElement.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.data = options.bytes === String ? "" : []; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this GroupElement to JSON. + * @function toJSON + * @memberof meerkat.GroupElement + * @instance + * @returns {Object.} JSON object + */ + GroupElement.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GroupElement; + })(); + + meerkat.ElGamalCiphertext = (function() { + + /** + * Properties of an ElGamalCiphertext. + * @memberof meerkat + * @interface IElGamalCiphertext + * @property {meerkat.IGroupElement} [c1] ElGamalCiphertext c1 + * @property {meerkat.IGroupElement} [c2] ElGamalCiphertext c2 + */ + + /** + * Constructs a new ElGamalCiphertext. + * @memberof meerkat + * @classdesc Represents an ElGamalCiphertext. + * @constructor + * @param {meerkat.IElGamalCiphertext=} [properties] Properties to set + */ + function ElGamalCiphertext(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ElGamalCiphertext c1. + * @member {(meerkat.IGroupElement|null|undefined)}c1 + * @memberof meerkat.ElGamalCiphertext + * @instance + */ + ElGamalCiphertext.prototype.c1 = null; + + /** + * ElGamalCiphertext c2. + * @member {(meerkat.IGroupElement|null|undefined)}c2 + * @memberof meerkat.ElGamalCiphertext + * @instance + */ + ElGamalCiphertext.prototype.c2 = null; + + /** + * Creates a new ElGamalCiphertext instance using the specified properties. + * @function create + * @memberof meerkat.ElGamalCiphertext + * @static + * @param {meerkat.IElGamalCiphertext=} [properties] Properties to set + * @returns {meerkat.ElGamalCiphertext} ElGamalCiphertext instance + */ + ElGamalCiphertext.create = function create(properties) { + return new ElGamalCiphertext(properties); + }; + + /** + * Encodes the specified ElGamalCiphertext message. Does not implicitly {@link meerkat.ElGamalCiphertext.verify|verify} messages. + * @function encode + * @memberof meerkat.ElGamalCiphertext + * @static + * @param {meerkat.IElGamalCiphertext} message ElGamalCiphertext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ElGamalCiphertext.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.c1 != null && message.hasOwnProperty("c1")) + $root.meerkat.GroupElement.encode(message.c1, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.c2 != null && message.hasOwnProperty("c2")) + $root.meerkat.GroupElement.encode(message.c2, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ElGamalCiphertext message, length delimited. Does not implicitly {@link meerkat.ElGamalCiphertext.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.ElGamalCiphertext + * @static + * @param {meerkat.IElGamalCiphertext} message ElGamalCiphertext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ElGamalCiphertext.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ElGamalCiphertext message from the specified reader or buffer. + * @function decode + * @memberof meerkat.ElGamalCiphertext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.ElGamalCiphertext} ElGamalCiphertext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ElGamalCiphertext.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ElGamalCiphertext(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.c1 = $root.meerkat.GroupElement.decode(reader, reader.uint32()); + break; + case 2: + message.c2 = $root.meerkat.GroupElement.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ElGamalCiphertext message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.ElGamalCiphertext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.ElGamalCiphertext} ElGamalCiphertext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ElGamalCiphertext.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ElGamalCiphertext message. + * @function verify + * @memberof meerkat.ElGamalCiphertext + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ElGamalCiphertext.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.c1 != null && message.hasOwnProperty("c1")) { + var error = $root.meerkat.GroupElement.verify(message.c1); + if (error) + return "c1." + error; + } + if (message.c2 != null && message.hasOwnProperty("c2")) { + error = $root.meerkat.GroupElement.verify(message.c2); + if (error) + return "c2." + error; + } + return null; + }; + + /** + * Creates an ElGamalCiphertext message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.ElGamalCiphertext + * @static + * @param {Object.} object Plain object + * @returns {meerkat.ElGamalCiphertext} ElGamalCiphertext + */ + ElGamalCiphertext.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.ElGamalCiphertext) + return object; + var message = new $root.meerkat.ElGamalCiphertext(); + if (object.c1 != null) { + if (typeof object.c1 !== "object") + throw TypeError(".meerkat.ElGamalCiphertext.c1: object expected"); + message.c1 = $root.meerkat.GroupElement.fromObject(object.c1); + } + if (object.c2 != null) { + if (typeof object.c2 !== "object") + throw TypeError(".meerkat.ElGamalCiphertext.c2: object expected"); + message.c2 = $root.meerkat.GroupElement.fromObject(object.c2); + } + return message; + }; + + /** + * Creates a plain object from an ElGamalCiphertext message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.ElGamalCiphertext + * @static + * @param {meerkat.ElGamalCiphertext} message ElGamalCiphertext + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ElGamalCiphertext.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.c1 = null; + object.c2 = null; + } + if (message.c1 != null && message.hasOwnProperty("c1")) + object.c1 = $root.meerkat.GroupElement.toObject(message.c1, options); + if (message.c2 != null && message.hasOwnProperty("c2")) + object.c2 = $root.meerkat.GroupElement.toObject(message.c2, options); + return object; + }; + + /** + * Converts this ElGamalCiphertext to JSON. + * @function toJSON + * @memberof meerkat.ElGamalCiphertext + * @instance + * @returns {Object.} JSON object + */ + ElGamalCiphertext.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ElGamalCiphertext; + })(); + + /** + * SignatureType enum. + * @enum {string} + * @property {number} ECDSA=0 ECDSA value + * @property {number} DSA=1 DSA value + * @property {number} RSA=2 RSA value + */ + meerkat.SignatureType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "ECDSA"] = 0; + values[valuesById[1] = "DSA"] = 1; + values[valuesById[2] = "RSA"] = 2; + return values; + })(); + + meerkat.BigInteger = (function() { + + /** + * Properties of a BigInteger. + * @memberof meerkat + * @interface IBigInteger + * @property {Uint8Array} [data] BigInteger data + */ + + /** + * Constructs a new BigInteger. + * @memberof meerkat + * @classdesc Represents a BigInteger. + * @constructor + * @param {meerkat.IBigInteger=} [properties] Properties to set + */ + function BigInteger(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BigInteger data. + * @member {Uint8Array}data + * @memberof meerkat.BigInteger + * @instance + */ + BigInteger.prototype.data = $util.newBuffer([]); + + /** + * Creates a new BigInteger instance using the specified properties. + * @function create + * @memberof meerkat.BigInteger + * @static + * @param {meerkat.IBigInteger=} [properties] Properties to set + * @returns {meerkat.BigInteger} BigInteger instance + */ + BigInteger.create = function create(properties) { + return new BigInteger(properties); + }; + + /** + * Encodes the specified BigInteger message. Does not implicitly {@link meerkat.BigInteger.verify|verify} messages. + * @function encode + * @memberof meerkat.BigInteger + * @static + * @param {meerkat.IBigInteger} message BigInteger message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BigInteger.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified BigInteger message, length delimited. Does not implicitly {@link meerkat.BigInteger.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BigInteger + * @static + * @param {meerkat.IBigInteger} message BigInteger message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BigInteger.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BigInteger message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BigInteger + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BigInteger} BigInteger + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BigInteger.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BigInteger(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BigInteger message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BigInteger + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BigInteger} BigInteger + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BigInteger.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BigInteger message. + * @function verify + * @memberof meerkat.BigInteger + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BigInteger.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates a BigInteger message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BigInteger + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BigInteger} BigInteger + */ + BigInteger.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BigInteger) + return object; + var message = new $root.meerkat.BigInteger(); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from a BigInteger message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BigInteger + * @static + * @param {meerkat.BigInteger} message BigInteger + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BigInteger.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.data = options.bytes === String ? "" : []; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this BigInteger to JSON. + * @function toJSON + * @memberof meerkat.BigInteger + * @instance + * @returns {Object.} JSON object + */ + BigInteger.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BigInteger; + })(); + + meerkat.Signature = (function() { + + /** + * Properties of a Signature. + * @memberof meerkat + * @interface ISignature + * @property {meerkat.SignatureType} [type] Signature type + * @property {Uint8Array} [data] Signature data + * @property {Uint8Array} [signerId] Signature signerId + */ + + /** + * Constructs a new Signature. + * @memberof meerkat + * @classdesc Represents a Signature. + * @constructor + * @param {meerkat.ISignature=} [properties] Properties to set + */ + function Signature(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Signature type. + * @member {meerkat.SignatureType}type + * @memberof meerkat.Signature + * @instance + */ + Signature.prototype.type = 0; + + /** + * Signature data. + * @member {Uint8Array}data + * @memberof meerkat.Signature + * @instance + */ + Signature.prototype.data = $util.newBuffer([]); + + /** + * Signature signerId. + * @member {Uint8Array}signerId + * @memberof meerkat.Signature + * @instance + */ + Signature.prototype.signerId = $util.newBuffer([]); + + /** + * Creates a new Signature instance using the specified properties. + * @function create + * @memberof meerkat.Signature + * @static + * @param {meerkat.ISignature=} [properties] Properties to set + * @returns {meerkat.Signature} Signature instance + */ + Signature.create = function create(properties) { + return new Signature(properties); + }; + + /** + * Encodes the specified Signature message. Does not implicitly {@link meerkat.Signature.verify|verify} messages. + * @function encode + * @memberof meerkat.Signature + * @static + * @param {meerkat.ISignature} message Signature message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Signature.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.type != null && message.hasOwnProperty("type")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.data); + if (message.signerId != null && message.hasOwnProperty("signerId")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.signerId); + return writer; + }; + + /** + * Encodes the specified Signature message, length delimited. Does not implicitly {@link meerkat.Signature.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Signature + * @static + * @param {meerkat.ISignature} message Signature message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Signature.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Signature message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Signature + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Signature} Signature + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Signature.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Signature(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.int32(); + break; + case 2: + message.data = reader.bytes(); + break; + case 3: + message.signerId = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Signature message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Signature + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Signature} Signature + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Signature.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Signature message. + * @function verify + * @memberof meerkat.Signature + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Signature.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + if (message.signerId != null && message.hasOwnProperty("signerId")) + if (!(message.signerId && typeof message.signerId.length === "number" || $util.isString(message.signerId))) + return "signerId: buffer expected"; + return null; + }; + + /** + * Creates a Signature message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Signature + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Signature} Signature + */ + Signature.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Signature) + return object; + var message = new $root.meerkat.Signature(); + switch (object.type) { + case "ECDSA": + case 0: + message.type = 0; + break; + case "DSA": + case 1: + message.type = 1; + break; + case "RSA": + case 2: + message.type = 2; + break; + } + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + if (object.signerId != null) + if (typeof object.signerId === "string") + $util.base64.decode(object.signerId, message.signerId = $util.newBuffer($util.base64.length(object.signerId)), 0); + else if (object.signerId.length) + message.signerId = object.signerId; + return message; + }; + + /** + * Creates a plain object from a Signature message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Signature + * @static + * @param {meerkat.Signature} message Signature + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Signature.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.type = options.enums === String ? "ECDSA" : 0; + object.data = options.bytes === String ? "" : []; + object.signerId = options.bytes === String ? "" : []; + } + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.meerkat.SignatureType[message.type] : message.type; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + if (message.signerId != null && message.hasOwnProperty("signerId")) + object.signerId = options.bytes === String ? $util.base64.encode(message.signerId, 0, message.signerId.length) : options.bytes === Array ? Array.prototype.slice.call(message.signerId) : message.signerId; + return object; + }; + + /** + * Converts this Signature to JSON. + * @function toJSON + * @memberof meerkat.Signature + * @instance + * @returns {Object.} JSON object + */ + Signature.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Signature; + })(); + + meerkat.SignatureVerificationKey = (function() { + + /** + * Properties of a SignatureVerificationKey. + * @memberof meerkat + * @interface ISignatureVerificationKey + * @property {meerkat.SignatureType} [type] SignatureVerificationKey type + * @property {Uint8Array} [data] SignatureVerificationKey data + */ + + /** + * Constructs a new SignatureVerificationKey. + * @memberof meerkat + * @classdesc Represents a SignatureVerificationKey. + * @constructor + * @param {meerkat.ISignatureVerificationKey=} [properties] Properties to set + */ + function SignatureVerificationKey(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SignatureVerificationKey type. + * @member {meerkat.SignatureType}type + * @memberof meerkat.SignatureVerificationKey + * @instance + */ + SignatureVerificationKey.prototype.type = 0; + + /** + * SignatureVerificationKey data. + * @member {Uint8Array}data + * @memberof meerkat.SignatureVerificationKey + * @instance + */ + SignatureVerificationKey.prototype.data = $util.newBuffer([]); + + /** + * Creates a new SignatureVerificationKey instance using the specified properties. + * @function create + * @memberof meerkat.SignatureVerificationKey + * @static + * @param {meerkat.ISignatureVerificationKey=} [properties] Properties to set + * @returns {meerkat.SignatureVerificationKey} SignatureVerificationKey instance + */ + SignatureVerificationKey.create = function create(properties) { + return new SignatureVerificationKey(properties); + }; + + /** + * Encodes the specified SignatureVerificationKey message. Does not implicitly {@link meerkat.SignatureVerificationKey.verify|verify} messages. + * @function encode + * @memberof meerkat.SignatureVerificationKey + * @static + * @param {meerkat.ISignatureVerificationKey} message SignatureVerificationKey message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SignatureVerificationKey.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.type != null && message.hasOwnProperty("type")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified SignatureVerificationKey message, length delimited. Does not implicitly {@link meerkat.SignatureVerificationKey.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.SignatureVerificationKey + * @static + * @param {meerkat.ISignatureVerificationKey} message SignatureVerificationKey message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SignatureVerificationKey.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SignatureVerificationKey message from the specified reader or buffer. + * @function decode + * @memberof meerkat.SignatureVerificationKey + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.SignatureVerificationKey} SignatureVerificationKey + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SignatureVerificationKey.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.SignatureVerificationKey(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.int32(); + break; + case 2: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SignatureVerificationKey message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.SignatureVerificationKey + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.SignatureVerificationKey} SignatureVerificationKey + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SignatureVerificationKey.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SignatureVerificationKey message. + * @function verify + * @memberof meerkat.SignatureVerificationKey + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SignatureVerificationKey.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates a SignatureVerificationKey message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.SignatureVerificationKey + * @static + * @param {Object.} object Plain object + * @returns {meerkat.SignatureVerificationKey} SignatureVerificationKey + */ + SignatureVerificationKey.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.SignatureVerificationKey) + return object; + var message = new $root.meerkat.SignatureVerificationKey(); + switch (object.type) { + case "ECDSA": + case 0: + message.type = 0; + break; + case "DSA": + case 1: + message.type = 1; + break; + case "RSA": + case 2: + message.type = 2; + break; + } + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from a SignatureVerificationKey message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.SignatureVerificationKey + * @static + * @param {meerkat.SignatureVerificationKey} message SignatureVerificationKey + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SignatureVerificationKey.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.type = options.enums === String ? "ECDSA" : 0; + object.data = options.bytes === String ? "" : []; + } + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.meerkat.SignatureType[message.type] : message.type; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this SignatureVerificationKey to JSON. + * @function toJSON + * @memberof meerkat.SignatureVerificationKey + * @instance + * @returns {Object.} JSON object + */ + SignatureVerificationKey.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return SignatureVerificationKey; + })(); + + meerkat.EncryptionPublicKey = (function() { + + /** + * Properties of an EncryptionPublicKey. + * @memberof meerkat + * @interface IEncryptionPublicKey + * @property {Uint8Array} [data] EncryptionPublicKey data + */ + + /** + * Constructs a new EncryptionPublicKey. + * @memberof meerkat + * @classdesc Represents an EncryptionPublicKey. + * @constructor + * @param {meerkat.IEncryptionPublicKey=} [properties] Properties to set + */ + function EncryptionPublicKey(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * EncryptionPublicKey data. + * @member {Uint8Array}data + * @memberof meerkat.EncryptionPublicKey + * @instance + */ + EncryptionPublicKey.prototype.data = $util.newBuffer([]); + + /** + * Creates a new EncryptionPublicKey instance using the specified properties. + * @function create + * @memberof meerkat.EncryptionPublicKey + * @static + * @param {meerkat.IEncryptionPublicKey=} [properties] Properties to set + * @returns {meerkat.EncryptionPublicKey} EncryptionPublicKey instance + */ + EncryptionPublicKey.create = function create(properties) { + return new EncryptionPublicKey(properties); + }; + + /** + * Encodes the specified EncryptionPublicKey message. Does not implicitly {@link meerkat.EncryptionPublicKey.verify|verify} messages. + * @function encode + * @memberof meerkat.EncryptionPublicKey + * @static + * @param {meerkat.IEncryptionPublicKey} message EncryptionPublicKey message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EncryptionPublicKey.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified EncryptionPublicKey message, length delimited. Does not implicitly {@link meerkat.EncryptionPublicKey.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.EncryptionPublicKey + * @static + * @param {meerkat.IEncryptionPublicKey} message EncryptionPublicKey message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EncryptionPublicKey.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EncryptionPublicKey message from the specified reader or buffer. + * @function decode + * @memberof meerkat.EncryptionPublicKey + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.EncryptionPublicKey} EncryptionPublicKey + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EncryptionPublicKey.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.EncryptionPublicKey(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EncryptionPublicKey message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.EncryptionPublicKey + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.EncryptionPublicKey} EncryptionPublicKey + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EncryptionPublicKey.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EncryptionPublicKey message. + * @function verify + * @memberof meerkat.EncryptionPublicKey + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EncryptionPublicKey.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates an EncryptionPublicKey message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.EncryptionPublicKey + * @static + * @param {Object.} object Plain object + * @returns {meerkat.EncryptionPublicKey} EncryptionPublicKey + */ + EncryptionPublicKey.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.EncryptionPublicKey) + return object; + var message = new $root.meerkat.EncryptionPublicKey(); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from an EncryptionPublicKey message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.EncryptionPublicKey + * @static + * @param {meerkat.EncryptionPublicKey} message EncryptionPublicKey + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EncryptionPublicKey.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.data = options.bytes === String ? "" : []; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this EncryptionPublicKey to JSON. + * @function toJSON + * @memberof meerkat.EncryptionPublicKey + * @instance + * @returns {Object.} JSON object + */ + EncryptionPublicKey.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return EncryptionPublicKey; + })(); + + meerkat.EncryptionRandomness = (function() { + + /** + * Properties of an EncryptionRandomness. + * @memberof meerkat + * @interface IEncryptionRandomness + * @property {Uint8Array} [data] EncryptionRandomness data + */ + + /** + * Constructs a new EncryptionRandomness. + * @memberof meerkat + * @classdesc Represents an EncryptionRandomness. + * @constructor + * @param {meerkat.IEncryptionRandomness=} [properties] Properties to set + */ + function EncryptionRandomness(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * EncryptionRandomness data. + * @member {Uint8Array}data + * @memberof meerkat.EncryptionRandomness + * @instance + */ + EncryptionRandomness.prototype.data = $util.newBuffer([]); + + /** + * Creates a new EncryptionRandomness instance using the specified properties. + * @function create + * @memberof meerkat.EncryptionRandomness + * @static + * @param {meerkat.IEncryptionRandomness=} [properties] Properties to set + * @returns {meerkat.EncryptionRandomness} EncryptionRandomness instance + */ + EncryptionRandomness.create = function create(properties) { + return new EncryptionRandomness(properties); + }; + + /** + * Encodes the specified EncryptionRandomness message. Does not implicitly {@link meerkat.EncryptionRandomness.verify|verify} messages. + * @function encode + * @memberof meerkat.EncryptionRandomness + * @static + * @param {meerkat.IEncryptionRandomness} message EncryptionRandomness message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EncryptionRandomness.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified EncryptionRandomness message, length delimited. Does not implicitly {@link meerkat.EncryptionRandomness.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.EncryptionRandomness + * @static + * @param {meerkat.IEncryptionRandomness} message EncryptionRandomness message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EncryptionRandomness.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EncryptionRandomness message from the specified reader or buffer. + * @function decode + * @memberof meerkat.EncryptionRandomness + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.EncryptionRandomness} EncryptionRandomness + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EncryptionRandomness.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.EncryptionRandomness(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EncryptionRandomness message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.EncryptionRandomness + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.EncryptionRandomness} EncryptionRandomness + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EncryptionRandomness.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EncryptionRandomness message. + * @function verify + * @memberof meerkat.EncryptionRandomness + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EncryptionRandomness.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates an EncryptionRandomness message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.EncryptionRandomness + * @static + * @param {Object.} object Plain object + * @returns {meerkat.EncryptionRandomness} EncryptionRandomness + */ + EncryptionRandomness.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.EncryptionRandomness) + return object; + var message = new $root.meerkat.EncryptionRandomness(); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from an EncryptionRandomness message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.EncryptionRandomness + * @static + * @param {meerkat.EncryptionRandomness} message EncryptionRandomness + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EncryptionRandomness.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.data = options.bytes === String ? "" : []; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this EncryptionRandomness to JSON. + * @function toJSON + * @memberof meerkat.EncryptionRandomness + * @instance + * @returns {Object.} JSON object + */ + EncryptionRandomness.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return EncryptionRandomness; + })(); + + meerkat.RandomnessGenerationProof = (function() { + + /** + * Properties of a RandomnessGenerationProof. + * @memberof meerkat + * @interface IRandomnessGenerationProof + * @property {Uint8Array} [data] RandomnessGenerationProof data + */ + + /** + * Constructs a new RandomnessGenerationProof. + * @memberof meerkat + * @classdesc Represents a RandomnessGenerationProof. + * @constructor + * @param {meerkat.IRandomnessGenerationProof=} [properties] Properties to set + */ + function RandomnessGenerationProof(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RandomnessGenerationProof data. + * @member {Uint8Array}data + * @memberof meerkat.RandomnessGenerationProof + * @instance + */ + RandomnessGenerationProof.prototype.data = $util.newBuffer([]); + + /** + * Creates a new RandomnessGenerationProof instance using the specified properties. + * @function create + * @memberof meerkat.RandomnessGenerationProof + * @static + * @param {meerkat.IRandomnessGenerationProof=} [properties] Properties to set + * @returns {meerkat.RandomnessGenerationProof} RandomnessGenerationProof instance + */ + RandomnessGenerationProof.create = function create(properties) { + return new RandomnessGenerationProof(properties); + }; + + /** + * Encodes the specified RandomnessGenerationProof message. Does not implicitly {@link meerkat.RandomnessGenerationProof.verify|verify} messages. + * @function encode + * @memberof meerkat.RandomnessGenerationProof + * @static + * @param {meerkat.IRandomnessGenerationProof} message RandomnessGenerationProof message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RandomnessGenerationProof.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified RandomnessGenerationProof message, length delimited. Does not implicitly {@link meerkat.RandomnessGenerationProof.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.RandomnessGenerationProof + * @static + * @param {meerkat.IRandomnessGenerationProof} message RandomnessGenerationProof message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RandomnessGenerationProof.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RandomnessGenerationProof message from the specified reader or buffer. + * @function decode + * @memberof meerkat.RandomnessGenerationProof + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.RandomnessGenerationProof} RandomnessGenerationProof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RandomnessGenerationProof.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.RandomnessGenerationProof(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RandomnessGenerationProof message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.RandomnessGenerationProof + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.RandomnessGenerationProof} RandomnessGenerationProof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RandomnessGenerationProof.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RandomnessGenerationProof message. + * @function verify + * @memberof meerkat.RandomnessGenerationProof + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RandomnessGenerationProof.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates a RandomnessGenerationProof message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.RandomnessGenerationProof + * @static + * @param {Object.} object Plain object + * @returns {meerkat.RandomnessGenerationProof} RandomnessGenerationProof + */ + RandomnessGenerationProof.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.RandomnessGenerationProof) + return object; + var message = new $root.meerkat.RandomnessGenerationProof(); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from a RandomnessGenerationProof message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.RandomnessGenerationProof + * @static + * @param {meerkat.RandomnessGenerationProof} message RandomnessGenerationProof + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RandomnessGenerationProof.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.data = options.bytes === String ? "" : []; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this RandomnessGenerationProof to JSON. + * @function toJSON + * @memberof meerkat.RandomnessGenerationProof + * @instance + * @returns {Object.} JSON object + */ + RandomnessGenerationProof.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return RandomnessGenerationProof; + })(); + + meerkat.RerandomizableEncryptedMessage = (function() { + + /** + * Properties of a RerandomizableEncryptedMessage. + * @memberof meerkat + * @interface IRerandomizableEncryptedMessage + * @property {Uint8Array} [data] RerandomizableEncryptedMessage data + */ + + /** + * Constructs a new RerandomizableEncryptedMessage. + * @memberof meerkat + * @classdesc Represents a RerandomizableEncryptedMessage. + * @constructor + * @param {meerkat.IRerandomizableEncryptedMessage=} [properties] Properties to set + */ + function RerandomizableEncryptedMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RerandomizableEncryptedMessage data. + * @member {Uint8Array}data + * @memberof meerkat.RerandomizableEncryptedMessage + * @instance + */ + RerandomizableEncryptedMessage.prototype.data = $util.newBuffer([]); + + /** + * Creates a new RerandomizableEncryptedMessage instance using the specified properties. + * @function create + * @memberof meerkat.RerandomizableEncryptedMessage + * @static + * @param {meerkat.IRerandomizableEncryptedMessage=} [properties] Properties to set + * @returns {meerkat.RerandomizableEncryptedMessage} RerandomizableEncryptedMessage instance + */ + RerandomizableEncryptedMessage.create = function create(properties) { + return new RerandomizableEncryptedMessage(properties); + }; + + /** + * Encodes the specified RerandomizableEncryptedMessage message. Does not implicitly {@link meerkat.RerandomizableEncryptedMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.RerandomizableEncryptedMessage + * @static + * @param {meerkat.IRerandomizableEncryptedMessage} message RerandomizableEncryptedMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RerandomizableEncryptedMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified RerandomizableEncryptedMessage message, length delimited. Does not implicitly {@link meerkat.RerandomizableEncryptedMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.RerandomizableEncryptedMessage + * @static + * @param {meerkat.IRerandomizableEncryptedMessage} message RerandomizableEncryptedMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RerandomizableEncryptedMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RerandomizableEncryptedMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.RerandomizableEncryptedMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.RerandomizableEncryptedMessage} RerandomizableEncryptedMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RerandomizableEncryptedMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.RerandomizableEncryptedMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RerandomizableEncryptedMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.RerandomizableEncryptedMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.RerandomizableEncryptedMessage} RerandomizableEncryptedMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RerandomizableEncryptedMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RerandomizableEncryptedMessage message. + * @function verify + * @memberof meerkat.RerandomizableEncryptedMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RerandomizableEncryptedMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates a RerandomizableEncryptedMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.RerandomizableEncryptedMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.RerandomizableEncryptedMessage} RerandomizableEncryptedMessage + */ + RerandomizableEncryptedMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.RerandomizableEncryptedMessage) + return object; + var message = new $root.meerkat.RerandomizableEncryptedMessage(); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from a RerandomizableEncryptedMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.RerandomizableEncryptedMessage + * @static + * @param {meerkat.RerandomizableEncryptedMessage} message RerandomizableEncryptedMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RerandomizableEncryptedMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.data = options.bytes === String ? "" : []; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this RerandomizableEncryptedMessage to JSON. + * @function toJSON + * @memberof meerkat.RerandomizableEncryptedMessage + * @instance + * @returns {Object.} JSON object + */ + RerandomizableEncryptedMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return RerandomizableEncryptedMessage; + })(); + + meerkat.Payload = (function() { + + /** + * Properties of a Payload. + * @memberof meerkat + * @interface IPayload + * @property {meerkat.Payload.Type} [type] Payload type + * @property {meerkat.IIDMessage} [id] Payload id + * @property {meerkat.IShareMessage} [share] Payload share + * @property {meerkat.ICommitmentMessage} [commitment] Payload commitment + */ + + /** + * Constructs a new Payload. + * @memberof meerkat + * @classdesc Represents a Payload. + * @constructor + * @param {meerkat.IPayload=} [properties] Properties to set + */ + function Payload(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Payload type. + * @member {meerkat.Payload.Type}type + * @memberof meerkat.Payload + * @instance + */ + Payload.prototype.type = 0; + + /** + * Payload id. + * @member {(meerkat.IIDMessage|null|undefined)}id + * @memberof meerkat.Payload + * @instance + */ + Payload.prototype.id = null; + + /** + * Payload share. + * @member {(meerkat.IShareMessage|null|undefined)}share + * @memberof meerkat.Payload + * @instance + */ + Payload.prototype.share = null; + + /** + * Payload commitment. + * @member {(meerkat.ICommitmentMessage|null|undefined)}commitment + * @memberof meerkat.Payload + * @instance + */ + Payload.prototype.commitment = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * Payload payloadData. + * @member {string|undefined} payloadData + * @memberof meerkat.Payload + * @instance + */ + Object.defineProperty(Payload.prototype, "payloadData", { + get: $util.oneOfGetter($oneOfFields = ["id", "share", "commitment"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Payload instance using the specified properties. + * @function create + * @memberof meerkat.Payload + * @static + * @param {meerkat.IPayload=} [properties] Properties to set + * @returns {meerkat.Payload} Payload instance + */ + Payload.create = function create(properties) { + return new Payload(properties); + }; + + /** + * Encodes the specified Payload message. Does not implicitly {@link meerkat.Payload.verify|verify} messages. + * @function encode + * @memberof meerkat.Payload + * @static + * @param {meerkat.IPayload} message Payload message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Payload.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.type != null && message.hasOwnProperty("type")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type); + if (message.id != null && message.hasOwnProperty("id")) + $root.meerkat.IDMessage.encode(message.id, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.share != null && message.hasOwnProperty("share")) + $root.meerkat.ShareMessage.encode(message.share, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.commitment != null && message.hasOwnProperty("commitment")) + $root.meerkat.CommitmentMessage.encode(message.commitment, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Payload message, length delimited. Does not implicitly {@link meerkat.Payload.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Payload + * @static + * @param {meerkat.IPayload} message Payload message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Payload.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Payload message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Payload + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Payload} Payload + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Payload.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Payload(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.int32(); + break; + case 5: + message.id = $root.meerkat.IDMessage.decode(reader, reader.uint32()); + break; + case 6: + message.share = $root.meerkat.ShareMessage.decode(reader, reader.uint32()); + break; + case 7: + message.commitment = $root.meerkat.CommitmentMessage.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Payload message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Payload + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Payload} Payload + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Payload.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Payload message. + * @function verify + * @memberof meerkat.Payload + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Payload.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + break; + } + if (message.id != null && message.hasOwnProperty("id")) { + properties.payloadData = 1; + var error = $root.meerkat.IDMessage.verify(message.id); + if (error) + return "id." + error; + } + if (message.share != null && message.hasOwnProperty("share")) { + if (properties.payloadData === 1) + return "payloadData: multiple values"; + properties.payloadData = 1; + error = $root.meerkat.ShareMessage.verify(message.share); + if (error) + return "share." + error; + } + if (message.commitment != null && message.hasOwnProperty("commitment")) { + if (properties.payloadData === 1) + return "payloadData: multiple values"; + properties.payloadData = 1; + error = $root.meerkat.CommitmentMessage.verify(message.commitment); + if (error) + return "commitment." + error; + } + return null; + }; + + /** + * Creates a Payload message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Payload + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Payload} Payload + */ + Payload.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Payload) + return object; + var message = new $root.meerkat.Payload(); + switch (object.type) { + case "SHARE": + case 0: + message.type = 0; + break; + case "COMMITMENT": + case 1: + message.type = 1; + break; + case "COMPLAINT": + case 2: + message.type = 2; + break; + case "DONE": + case 3: + message.type = 3; + break; + case "ANSWER": + case 4: + message.type = 4; + break; + case "YCOMMITMENT": + case 5: + message.type = 5; + break; + case "YCOMPLAINT": + case 6: + message.type = 6; + break; + case "YANSWER": + case 7: + message.type = 7; + break; + case "ABORT": + case 8: + message.type = 8; + break; + } + if (object.id != null) { + if (typeof object.id !== "object") + throw TypeError(".meerkat.Payload.id: object expected"); + message.id = $root.meerkat.IDMessage.fromObject(object.id); + } + if (object.share != null) { + if (typeof object.share !== "object") + throw TypeError(".meerkat.Payload.share: object expected"); + message.share = $root.meerkat.ShareMessage.fromObject(object.share); + } + if (object.commitment != null) { + if (typeof object.commitment !== "object") + throw TypeError(".meerkat.Payload.commitment: object expected"); + message.commitment = $root.meerkat.CommitmentMessage.fromObject(object.commitment); + } + return message; + }; + + /** + * Creates a plain object from a Payload message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Payload + * @static + * @param {meerkat.Payload} message Payload + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Payload.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.type = options.enums === String ? "SHARE" : 0; + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.meerkat.Payload.Type[message.type] : message.type; + if (message.id != null && message.hasOwnProperty("id")) { + object.id = $root.meerkat.IDMessage.toObject(message.id, options); + if (options.oneofs) + object.payloadData = "id"; + } + if (message.share != null && message.hasOwnProperty("share")) { + object.share = $root.meerkat.ShareMessage.toObject(message.share, options); + if (options.oneofs) + object.payloadData = "share"; + } + if (message.commitment != null && message.hasOwnProperty("commitment")) { + object.commitment = $root.meerkat.CommitmentMessage.toObject(message.commitment, options); + if (options.oneofs) + object.payloadData = "commitment"; + } + return object; + }; + + /** + * Converts this Payload to JSON. + * @function toJSON + * @memberof meerkat.Payload + * @instance + * @returns {Object.} JSON object + */ + Payload.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Type enum. + * @enum {string} + * @property {number} SHARE=0 SHARE value + * @property {number} COMMITMENT=1 COMMITMENT value + * @property {number} COMPLAINT=2 COMPLAINT value + * @property {number} DONE=3 DONE value + * @property {number} ANSWER=4 ANSWER value + * @property {number} YCOMMITMENT=5 YCOMMITMENT value + * @property {number} YCOMPLAINT=6 YCOMPLAINT value + * @property {number} YANSWER=7 YANSWER value + * @property {number} ABORT=8 ABORT value + */ + Payload.Type = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "SHARE"] = 0; + values[valuesById[1] = "COMMITMENT"] = 1; + values[valuesById[2] = "COMPLAINT"] = 2; + values[valuesById[3] = "DONE"] = 3; + values[valuesById[4] = "ANSWER"] = 4; + values[valuesById[5] = "YCOMMITMENT"] = 5; + values[valuesById[6] = "YCOMPLAINT"] = 6; + values[valuesById[7] = "YANSWER"] = 7; + values[valuesById[8] = "ABORT"] = 8; + return values; + })(); + + return Payload; + })(); + + meerkat.IDMessage = (function() { + + /** + * Properties of a IDMessage. + * @memberof meerkat + * @interface IIDMessage + * @property {number} [id] IDMessage id + */ + + /** + * Constructs a new IDMessage. + * @memberof meerkat + * @classdesc Represents a IDMessage. + * @constructor + * @param {meerkat.IIDMessage=} [properties] Properties to set + */ + function IDMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * IDMessage id. + * @member {number}id + * @memberof meerkat.IDMessage + * @instance + */ + IDMessage.prototype.id = 0; + + /** + * Creates a new IDMessage instance using the specified properties. + * @function create + * @memberof meerkat.IDMessage + * @static + * @param {meerkat.IIDMessage=} [properties] Properties to set + * @returns {meerkat.IDMessage} IDMessage instance + */ + IDMessage.create = function create(properties) { + return new IDMessage(properties); + }; + + /** + * Encodes the specified IDMessage message. Does not implicitly {@link meerkat.IDMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.IDMessage + * @static + * @param {meerkat.IIDMessage} message IDMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + IDMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && message.hasOwnProperty("id")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); + return writer; + }; + + /** + * Encodes the specified IDMessage message, length delimited. Does not implicitly {@link meerkat.IDMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.IDMessage + * @static + * @param {meerkat.IIDMessage} message IDMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + IDMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a IDMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.IDMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.IDMessage} IDMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + IDMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.IDMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a IDMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.IDMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.IDMessage} IDMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + IDMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a IDMessage message. + * @function verify + * @memberof meerkat.IDMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + IDMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!$util.isInteger(message.id)) + return "id: integer expected"; + return null; + }; + + /** + * Creates a IDMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.IDMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.IDMessage} IDMessage + */ + IDMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.IDMessage) + return object; + var message = new $root.meerkat.IDMessage(); + if (object.id != null) + message.id = object.id | 0; + return message; + }; + + /** + * Creates a plain object from a IDMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.IDMessage + * @static + * @param {meerkat.IDMessage} message IDMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + IDMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.id = 0; + if (message.id != null && message.hasOwnProperty("id")) + object.id = message.id; + return object; + }; + + /** + * Converts this IDMessage to JSON. + * @function toJSON + * @memberof meerkat.IDMessage + * @instance + * @returns {Object.} JSON object + */ + IDMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return IDMessage; + })(); + + meerkat.ShareMessage = (function() { + + /** + * Properties of a ShareMessage. + * @memberof meerkat + * @interface IShareMessage + * @property {number} [i] ShareMessage i + * @property {number} [j] ShareMessage j + * @property {Uint8Array} [share] ShareMessage share + * @property {Uint8Array} [shareT] ShareMessage shareT + */ + + /** + * Constructs a new ShareMessage. + * @memberof meerkat + * @classdesc Represents a ShareMessage. + * @constructor + * @param {meerkat.IShareMessage=} [properties] Properties to set + */ + function ShareMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ShareMessage i. + * @member {number}i + * @memberof meerkat.ShareMessage + * @instance + */ + ShareMessage.prototype.i = 0; + + /** + * ShareMessage j. + * @member {number}j + * @memberof meerkat.ShareMessage + * @instance + */ + ShareMessage.prototype.j = 0; + + /** + * ShareMessage share. + * @member {Uint8Array}share + * @memberof meerkat.ShareMessage + * @instance + */ + ShareMessage.prototype.share = $util.newBuffer([]); + + /** + * ShareMessage shareT. + * @member {Uint8Array}shareT + * @memberof meerkat.ShareMessage + * @instance + */ + ShareMessage.prototype.shareT = $util.newBuffer([]); + + /** + * Creates a new ShareMessage instance using the specified properties. + * @function create + * @memberof meerkat.ShareMessage + * @static + * @param {meerkat.IShareMessage=} [properties] Properties to set + * @returns {meerkat.ShareMessage} ShareMessage instance + */ + ShareMessage.create = function create(properties) { + return new ShareMessage(properties); + }; + + /** + * Encodes the specified ShareMessage message. Does not implicitly {@link meerkat.ShareMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.ShareMessage + * @static + * @param {meerkat.IShareMessage} message ShareMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ShareMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.i != null && message.hasOwnProperty("i")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.i); + if (message.j != null && message.hasOwnProperty("j")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.j); + if (message.share != null && message.hasOwnProperty("share")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.share); + if (message.shareT != null && message.hasOwnProperty("shareT")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.shareT); + return writer; + }; + + /** + * Encodes the specified ShareMessage message, length delimited. Does not implicitly {@link meerkat.ShareMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.ShareMessage + * @static + * @param {meerkat.IShareMessage} message ShareMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ShareMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ShareMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.ShareMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.ShareMessage} ShareMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ShareMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ShareMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.i = reader.int32(); + break; + case 2: + message.j = reader.int32(); + break; + case 3: + message.share = reader.bytes(); + break; + case 4: + message.shareT = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ShareMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.ShareMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.ShareMessage} ShareMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ShareMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ShareMessage message. + * @function verify + * @memberof meerkat.ShareMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ShareMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.i != null && message.hasOwnProperty("i")) + if (!$util.isInteger(message.i)) + return "i: integer expected"; + if (message.j != null && message.hasOwnProperty("j")) + if (!$util.isInteger(message.j)) + return "j: integer expected"; + if (message.share != null && message.hasOwnProperty("share")) + if (!(message.share && typeof message.share.length === "number" || $util.isString(message.share))) + return "share: buffer expected"; + if (message.shareT != null && message.hasOwnProperty("shareT")) + if (!(message.shareT && typeof message.shareT.length === "number" || $util.isString(message.shareT))) + return "shareT: buffer expected"; + return null; + }; + + /** + * Creates a ShareMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.ShareMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.ShareMessage} ShareMessage + */ + ShareMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.ShareMessage) + return object; + var message = new $root.meerkat.ShareMessage(); + if (object.i != null) + message.i = object.i | 0; + if (object.j != null) + message.j = object.j | 0; + if (object.share != null) + if (typeof object.share === "string") + $util.base64.decode(object.share, message.share = $util.newBuffer($util.base64.length(object.share)), 0); + else if (object.share.length) + message.share = object.share; + if (object.shareT != null) + if (typeof object.shareT === "string") + $util.base64.decode(object.shareT, message.shareT = $util.newBuffer($util.base64.length(object.shareT)), 0); + else if (object.shareT.length) + message.shareT = object.shareT; + return message; + }; + + /** + * Creates a plain object from a ShareMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.ShareMessage + * @static + * @param {meerkat.ShareMessage} message ShareMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ShareMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.i = 0; + object.j = 0; + object.share = options.bytes === String ? "" : []; + object.shareT = options.bytes === String ? "" : []; + } + if (message.i != null && message.hasOwnProperty("i")) + object.i = message.i; + if (message.j != null && message.hasOwnProperty("j")) + object.j = message.j; + if (message.share != null && message.hasOwnProperty("share")) + object.share = options.bytes === String ? $util.base64.encode(message.share, 0, message.share.length) : options.bytes === Array ? Array.prototype.slice.call(message.share) : message.share; + if (message.shareT != null && message.hasOwnProperty("shareT")) + object.shareT = options.bytes === String ? $util.base64.encode(message.shareT, 0, message.shareT.length) : options.bytes === Array ? Array.prototype.slice.call(message.shareT) : message.shareT; + return object; + }; + + /** + * Converts this ShareMessage to JSON. + * @function toJSON + * @memberof meerkat.ShareMessage + * @instance + * @returns {Object.} JSON object + */ + ShareMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ShareMessage; + })(); + + meerkat.CommitmentMessage = (function() { + + /** + * Properties of a CommitmentMessage. + * @memberof meerkat + * @interface ICommitmentMessage + * @property {number} [k] CommitmentMessage k + * @property {Uint8Array} [commitment] CommitmentMessage commitment + */ + + /** + * Constructs a new CommitmentMessage. + * @memberof meerkat + * @classdesc Represents a CommitmentMessage. + * @constructor + * @param {meerkat.ICommitmentMessage=} [properties] Properties to set + */ + function CommitmentMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CommitmentMessage k. + * @member {number}k + * @memberof meerkat.CommitmentMessage + * @instance + */ + CommitmentMessage.prototype.k = 0; + + /** + * CommitmentMessage commitment. + * @member {Uint8Array}commitment + * @memberof meerkat.CommitmentMessage + * @instance + */ + CommitmentMessage.prototype.commitment = $util.newBuffer([]); + + /** + * Creates a new CommitmentMessage instance using the specified properties. + * @function create + * @memberof meerkat.CommitmentMessage + * @static + * @param {meerkat.ICommitmentMessage=} [properties] Properties to set + * @returns {meerkat.CommitmentMessage} CommitmentMessage instance + */ + CommitmentMessage.create = function create(properties) { + return new CommitmentMessage(properties); + }; + + /** + * Encodes the specified CommitmentMessage message. Does not implicitly {@link meerkat.CommitmentMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.CommitmentMessage + * @static + * @param {meerkat.ICommitmentMessage} message CommitmentMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CommitmentMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.k != null && message.hasOwnProperty("k")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.k); + if (message.commitment != null && message.hasOwnProperty("commitment")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.commitment); + return writer; + }; + + /** + * Encodes the specified CommitmentMessage message, length delimited. Does not implicitly {@link meerkat.CommitmentMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.CommitmentMessage + * @static + * @param {meerkat.ICommitmentMessage} message CommitmentMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CommitmentMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CommitmentMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.CommitmentMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.CommitmentMessage} CommitmentMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CommitmentMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.CommitmentMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.k = reader.int32(); + break; + case 2: + message.commitment = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CommitmentMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.CommitmentMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.CommitmentMessage} CommitmentMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CommitmentMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CommitmentMessage message. + * @function verify + * @memberof meerkat.CommitmentMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CommitmentMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.k != null && message.hasOwnProperty("k")) + if (!$util.isInteger(message.k)) + return "k: integer expected"; + if (message.commitment != null && message.hasOwnProperty("commitment")) + if (!(message.commitment && typeof message.commitment.length === "number" || $util.isString(message.commitment))) + return "commitment: buffer expected"; + return null; + }; + + /** + * Creates a CommitmentMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.CommitmentMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.CommitmentMessage} CommitmentMessage + */ + CommitmentMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.CommitmentMessage) + return object; + var message = new $root.meerkat.CommitmentMessage(); + if (object.k != null) + message.k = object.k | 0; + if (object.commitment != null) + if (typeof object.commitment === "string") + $util.base64.decode(object.commitment, message.commitment = $util.newBuffer($util.base64.length(object.commitment)), 0); + else if (object.commitment.length) + message.commitment = object.commitment; + return message; + }; + + /** + * Creates a plain object from a CommitmentMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.CommitmentMessage + * @static + * @param {meerkat.CommitmentMessage} message CommitmentMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CommitmentMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.k = 0; + object.commitment = options.bytes === String ? "" : []; + } + if (message.k != null && message.hasOwnProperty("k")) + object.k = message.k; + if (message.commitment != null && message.hasOwnProperty("commitment")) + object.commitment = options.bytes === String ? $util.base64.encode(message.commitment, 0, message.commitment.length) : options.bytes === Array ? Array.prototype.slice.call(message.commitment) : message.commitment; + return object; + }; + + /** + * Converts this CommitmentMessage to JSON. + * @function toJSON + * @memberof meerkat.CommitmentMessage + * @instance + * @returns {Object.} JSON object + */ + CommitmentMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return CommitmentMessage; + })(); + + meerkat.MixBatchHeader = (function() { + + /** + * Properties of a MixBatchHeader. + * @memberof meerkat + * @interface IMixBatchHeader + * @property {number} [logN] MixBatchHeader logN + * @property {number} [layers] MixBatchHeader layers + */ + + /** + * Constructs a new MixBatchHeader. + * @memberof meerkat + * @classdesc Represents a MixBatchHeader. + * @constructor + * @param {meerkat.IMixBatchHeader=} [properties] Properties to set + */ + function MixBatchHeader(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * MixBatchHeader logN. + * @member {number}logN + * @memberof meerkat.MixBatchHeader + * @instance + */ + MixBatchHeader.prototype.logN = 0; + + /** + * MixBatchHeader layers. + * @member {number}layers + * @memberof meerkat.MixBatchHeader + * @instance + */ + MixBatchHeader.prototype.layers = 0; + + /** + * Creates a new MixBatchHeader instance using the specified properties. + * @function create + * @memberof meerkat.MixBatchHeader + * @static + * @param {meerkat.IMixBatchHeader=} [properties] Properties to set + * @returns {meerkat.MixBatchHeader} MixBatchHeader instance + */ + MixBatchHeader.create = function create(properties) { + return new MixBatchHeader(properties); + }; + + /** + * Encodes the specified MixBatchHeader message. Does not implicitly {@link meerkat.MixBatchHeader.verify|verify} messages. + * @function encode + * @memberof meerkat.MixBatchHeader + * @static + * @param {meerkat.IMixBatchHeader} message MixBatchHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MixBatchHeader.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.logN != null && message.hasOwnProperty("logN")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.logN); + if (message.layers != null && message.hasOwnProperty("layers")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.layers); + return writer; + }; + + /** + * Encodes the specified MixBatchHeader message, length delimited. Does not implicitly {@link meerkat.MixBatchHeader.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.MixBatchHeader + * @static + * @param {meerkat.IMixBatchHeader} message MixBatchHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MixBatchHeader.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MixBatchHeader message from the specified reader or buffer. + * @function decode + * @memberof meerkat.MixBatchHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.MixBatchHeader} MixBatchHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MixBatchHeader.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.MixBatchHeader(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.logN = reader.int32(); + break; + case 2: + message.layers = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MixBatchHeader message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.MixBatchHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.MixBatchHeader} MixBatchHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MixBatchHeader.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MixBatchHeader message. + * @function verify + * @memberof meerkat.MixBatchHeader + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MixBatchHeader.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.logN != null && message.hasOwnProperty("logN")) + if (!$util.isInteger(message.logN)) + return "logN: integer expected"; + if (message.layers != null && message.hasOwnProperty("layers")) + if (!$util.isInteger(message.layers)) + return "layers: integer expected"; + return null; + }; + + /** + * Creates a MixBatchHeader message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.MixBatchHeader + * @static + * @param {Object.} object Plain object + * @returns {meerkat.MixBatchHeader} MixBatchHeader + */ + MixBatchHeader.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.MixBatchHeader) + return object; + var message = new $root.meerkat.MixBatchHeader(); + if (object.logN != null) + message.logN = object.logN | 0; + if (object.layers != null) + message.layers = object.layers | 0; + return message; + }; + + /** + * Creates a plain object from a MixBatchHeader message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.MixBatchHeader + * @static + * @param {meerkat.MixBatchHeader} message MixBatchHeader + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MixBatchHeader.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.logN = 0; + object.layers = 0; + } + if (message.logN != null && message.hasOwnProperty("logN")) + object.logN = message.logN; + if (message.layers != null && message.hasOwnProperty("layers")) + object.layers = message.layers; + return object; + }; + + /** + * Converts this MixBatchHeader to JSON. + * @function toJSON + * @memberof meerkat.MixBatchHeader + * @instance + * @returns {Object.} JSON object + */ + MixBatchHeader.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return MixBatchHeader; + })(); + + meerkat.Plaintext = (function() { + + /** + * Properties of a Plaintext. + * @memberof meerkat + * @interface IPlaintext + * @property {Uint8Array} [data] Plaintext data + */ + + /** + * Constructs a new Plaintext. + * @memberof meerkat + * @classdesc Represents a Plaintext. + * @constructor + * @param {meerkat.IPlaintext=} [properties] Properties to set + */ + function Plaintext(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Plaintext data. + * @member {Uint8Array}data + * @memberof meerkat.Plaintext + * @instance + */ + Plaintext.prototype.data = $util.newBuffer([]); + + /** + * Creates a new Plaintext instance using the specified properties. + * @function create + * @memberof meerkat.Plaintext + * @static + * @param {meerkat.IPlaintext=} [properties] Properties to set + * @returns {meerkat.Plaintext} Plaintext instance + */ + Plaintext.create = function create(properties) { + return new Plaintext(properties); + }; + + /** + * Encodes the specified Plaintext message. Does not implicitly {@link meerkat.Plaintext.verify|verify} messages. + * @function encode + * @memberof meerkat.Plaintext + * @static + * @param {meerkat.IPlaintext} message Plaintext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Plaintext.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified Plaintext message, length delimited. Does not implicitly {@link meerkat.Plaintext.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Plaintext + * @static + * @param {meerkat.IPlaintext} message Plaintext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Plaintext.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Plaintext message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Plaintext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Plaintext} Plaintext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Plaintext.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Plaintext(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Plaintext message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Plaintext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Plaintext} Plaintext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Plaintext.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Plaintext message. + * @function verify + * @memberof meerkat.Plaintext + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Plaintext.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates a Plaintext message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Plaintext + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Plaintext} Plaintext + */ + Plaintext.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Plaintext) + return object; + var message = new $root.meerkat.Plaintext(); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from a Plaintext message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Plaintext + * @static + * @param {meerkat.Plaintext} message Plaintext + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Plaintext.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.data = options.bytes === String ? "" : []; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this Plaintext to JSON. + * @function toJSON + * @memberof meerkat.Plaintext + * @instance + * @returns {Object.} JSON object + */ + Plaintext.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Plaintext; + })(); + + meerkat.Mix2Proof = (function() { + + /** + * Properties of a Mix2Proof. + * @memberof meerkat + * @interface IMix2Proof + * @property {meerkat.Mix2Proof.IFirstMessage} [firstMessage] Mix2Proof firstMessage + * @property {meerkat.Mix2Proof.IFinalMessage} [finalMessage] Mix2Proof finalMessage + * @property {meerkat.Mix2Proof.ILocation} [location] Mix2Proof location + */ + + /** + * Constructs a new Mix2Proof. + * @memberof meerkat + * @classdesc Represents a Mix2Proof. + * @constructor + * @param {meerkat.IMix2Proof=} [properties] Properties to set + */ + function Mix2Proof(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Mix2Proof firstMessage. + * @member {(meerkat.Mix2Proof.IFirstMessage|null|undefined)}firstMessage + * @memberof meerkat.Mix2Proof + * @instance + */ + Mix2Proof.prototype.firstMessage = null; + + /** + * Mix2Proof finalMessage. + * @member {(meerkat.Mix2Proof.IFinalMessage|null|undefined)}finalMessage + * @memberof meerkat.Mix2Proof + * @instance + */ + Mix2Proof.prototype.finalMessage = null; + + /** + * Mix2Proof location. + * @member {(meerkat.Mix2Proof.ILocation|null|undefined)}location + * @memberof meerkat.Mix2Proof + * @instance + */ + Mix2Proof.prototype.location = null; + + /** + * Creates a new Mix2Proof instance using the specified properties. + * @function create + * @memberof meerkat.Mix2Proof + * @static + * @param {meerkat.IMix2Proof=} [properties] Properties to set + * @returns {meerkat.Mix2Proof} Mix2Proof instance + */ + Mix2Proof.create = function create(properties) { + return new Mix2Proof(properties); + }; + + /** + * Encodes the specified Mix2Proof message. Does not implicitly {@link meerkat.Mix2Proof.verify|verify} messages. + * @function encode + * @memberof meerkat.Mix2Proof + * @static + * @param {meerkat.IMix2Proof} message Mix2Proof message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Mix2Proof.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.firstMessage != null && message.hasOwnProperty("firstMessage")) + $root.meerkat.Mix2Proof.FirstMessage.encode(message.firstMessage, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.finalMessage != null && message.hasOwnProperty("finalMessage")) + $root.meerkat.Mix2Proof.FinalMessage.encode(message.finalMessage, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.location != null && message.hasOwnProperty("location")) + $root.meerkat.Mix2Proof.Location.encode(message.location, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Mix2Proof message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Mix2Proof + * @static + * @param {meerkat.IMix2Proof} message Mix2Proof message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Mix2Proof.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Mix2Proof message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Mix2Proof + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Mix2Proof} Mix2Proof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Mix2Proof.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.firstMessage = $root.meerkat.Mix2Proof.FirstMessage.decode(reader, reader.uint32()); + break; + case 2: + message.finalMessage = $root.meerkat.Mix2Proof.FinalMessage.decode(reader, reader.uint32()); + break; + case 5: + message.location = $root.meerkat.Mix2Proof.Location.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Mix2Proof message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Mix2Proof + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Mix2Proof} Mix2Proof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Mix2Proof.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Mix2Proof message. + * @function verify + * @memberof meerkat.Mix2Proof + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Mix2Proof.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.firstMessage != null && message.hasOwnProperty("firstMessage")) { + var error = $root.meerkat.Mix2Proof.FirstMessage.verify(message.firstMessage); + if (error) + return "firstMessage." + error; + } + if (message.finalMessage != null && message.hasOwnProperty("finalMessage")) { + error = $root.meerkat.Mix2Proof.FinalMessage.verify(message.finalMessage); + if (error) + return "finalMessage." + error; + } + if (message.location != null && message.hasOwnProperty("location")) { + error = $root.meerkat.Mix2Proof.Location.verify(message.location); + if (error) + return "location." + error; + } + return null; + }; + + /** + * Creates a Mix2Proof message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Mix2Proof + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Mix2Proof} Mix2Proof + */ + Mix2Proof.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Mix2Proof) + return object; + var message = new $root.meerkat.Mix2Proof(); + if (object.firstMessage != null) { + if (typeof object.firstMessage !== "object") + throw TypeError(".meerkat.Mix2Proof.firstMessage: object expected"); + message.firstMessage = $root.meerkat.Mix2Proof.FirstMessage.fromObject(object.firstMessage); + } + if (object.finalMessage != null) { + if (typeof object.finalMessage !== "object") + throw TypeError(".meerkat.Mix2Proof.finalMessage: object expected"); + message.finalMessage = $root.meerkat.Mix2Proof.FinalMessage.fromObject(object.finalMessage); + } + if (object.location != null) { + if (typeof object.location !== "object") + throw TypeError(".meerkat.Mix2Proof.location: object expected"); + message.location = $root.meerkat.Mix2Proof.Location.fromObject(object.location); + } + return message; + }; + + /** + * Creates a plain object from a Mix2Proof message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Mix2Proof + * @static + * @param {meerkat.Mix2Proof} message Mix2Proof + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Mix2Proof.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.firstMessage = null; + object.finalMessage = null; + object.location = null; + } + if (message.firstMessage != null && message.hasOwnProperty("firstMessage")) + object.firstMessage = $root.meerkat.Mix2Proof.FirstMessage.toObject(message.firstMessage, options); + if (message.finalMessage != null && message.hasOwnProperty("finalMessage")) + object.finalMessage = $root.meerkat.Mix2Proof.FinalMessage.toObject(message.finalMessage, options); + if (message.location != null && message.hasOwnProperty("location")) + object.location = $root.meerkat.Mix2Proof.Location.toObject(message.location, options); + return object; + }; + + /** + * Converts this Mix2Proof to JSON. + * @function toJSON + * @memberof meerkat.Mix2Proof + * @instance + * @returns {Object.} JSON object + */ + Mix2Proof.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + Mix2Proof.DlogProof = (function() { + + /** + * Properties of a DlogProof. + * @memberof meerkat.Mix2Proof + * @interface IDlogProof + */ + + /** + * Constructs a new DlogProof. + * @memberof meerkat.Mix2Proof + * @classdesc Represents a DlogProof. + * @constructor + * @param {meerkat.Mix2Proof.IDlogProof=} [properties] Properties to set + */ + function DlogProof(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new DlogProof instance using the specified properties. + * @function create + * @memberof meerkat.Mix2Proof.DlogProof + * @static + * @param {meerkat.Mix2Proof.IDlogProof=} [properties] Properties to set + * @returns {meerkat.Mix2Proof.DlogProof} DlogProof instance + */ + DlogProof.create = function create(properties) { + return new DlogProof(properties); + }; + + /** + * Encodes the specified DlogProof message. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.verify|verify} messages. + * @function encode + * @memberof meerkat.Mix2Proof.DlogProof + * @static + * @param {meerkat.Mix2Proof.IDlogProof} message DlogProof message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DlogProof.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified DlogProof message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Mix2Proof.DlogProof + * @static + * @param {meerkat.Mix2Proof.IDlogProof} message DlogProof message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DlogProof.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DlogProof message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Mix2Proof.DlogProof + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Mix2Proof.DlogProof} DlogProof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DlogProof.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.DlogProof(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DlogProof message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Mix2Proof.DlogProof + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Mix2Proof.DlogProof} DlogProof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DlogProof.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DlogProof message. + * @function verify + * @memberof meerkat.Mix2Proof.DlogProof + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DlogProof.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates a DlogProof message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Mix2Proof.DlogProof + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Mix2Proof.DlogProof} DlogProof + */ + DlogProof.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Mix2Proof.DlogProof) + return object; + return new $root.meerkat.Mix2Proof.DlogProof(); + }; + + /** + * Creates a plain object from a DlogProof message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Mix2Proof.DlogProof + * @static + * @param {meerkat.Mix2Proof.DlogProof} message DlogProof + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DlogProof.toObject = function toObject() { + return {}; + }; + + /** + * Converts this DlogProof to JSON. + * @function toJSON + * @memberof meerkat.Mix2Proof.DlogProof + * @instance + * @returns {Object.} JSON object + */ + DlogProof.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + DlogProof.FirstMessage = (function() { + + /** + * Properties of a FirstMessage. + * @memberof meerkat.Mix2Proof.DlogProof + * @interface IFirstMessage + * @property {meerkat.IGroupElement} [gr] FirstMessage gr + * @property {meerkat.IGroupElement} [hr] FirstMessage hr + */ + + /** + * Constructs a new FirstMessage. + * @memberof meerkat.Mix2Proof.DlogProof + * @classdesc Represents a FirstMessage. + * @constructor + * @param {meerkat.Mix2Proof.DlogProof.IFirstMessage=} [properties] Properties to set + */ + function FirstMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * FirstMessage gr. + * @member {(meerkat.IGroupElement|null|undefined)}gr + * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage + * @instance + */ + FirstMessage.prototype.gr = null; + + /** + * FirstMessage hr. + * @member {(meerkat.IGroupElement|null|undefined)}hr + * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage + * @instance + */ + FirstMessage.prototype.hr = null; + + /** + * Creates a new FirstMessage instance using the specified properties. + * @function create + * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage + * @static + * @param {meerkat.Mix2Proof.DlogProof.IFirstMessage=} [properties] Properties to set + * @returns {meerkat.Mix2Proof.DlogProof.FirstMessage} FirstMessage instance + */ + FirstMessage.create = function create(properties) { + return new FirstMessage(properties); + }; + + /** + * Encodes the specified FirstMessage message. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FirstMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage + * @static + * @param {meerkat.Mix2Proof.DlogProof.IFirstMessage} message FirstMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FirstMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.gr != null && message.hasOwnProperty("gr")) + $root.meerkat.GroupElement.encode(message.gr, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.hr != null && message.hasOwnProperty("hr")) + $root.meerkat.GroupElement.encode(message.hr, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FirstMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FirstMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage + * @static + * @param {meerkat.Mix2Proof.DlogProof.IFirstMessage} message FirstMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FirstMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FirstMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Mix2Proof.DlogProof.FirstMessage} FirstMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FirstMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.DlogProof.FirstMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.gr = $root.meerkat.GroupElement.decode(reader, reader.uint32()); + break; + case 2: + message.hr = $root.meerkat.GroupElement.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FirstMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Mix2Proof.DlogProof.FirstMessage} FirstMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FirstMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FirstMessage message. + * @function verify + * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FirstMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.gr != null && message.hasOwnProperty("gr")) { + var error = $root.meerkat.GroupElement.verify(message.gr); + if (error) + return "gr." + error; + } + if (message.hr != null && message.hasOwnProperty("hr")) { + error = $root.meerkat.GroupElement.verify(message.hr); + if (error) + return "hr." + error; + } + return null; + }; + + /** + * Creates a FirstMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Mix2Proof.DlogProof.FirstMessage} FirstMessage + */ + FirstMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Mix2Proof.DlogProof.FirstMessage) + return object; + var message = new $root.meerkat.Mix2Proof.DlogProof.FirstMessage(); + if (object.gr != null) { + if (typeof object.gr !== "object") + throw TypeError(".meerkat.Mix2Proof.DlogProof.FirstMessage.gr: object expected"); + message.gr = $root.meerkat.GroupElement.fromObject(object.gr); + } + if (object.hr != null) { + if (typeof object.hr !== "object") + throw TypeError(".meerkat.Mix2Proof.DlogProof.FirstMessage.hr: object expected"); + message.hr = $root.meerkat.GroupElement.fromObject(object.hr); + } + return message; + }; + + /** + * Creates a plain object from a FirstMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage + * @static + * @param {meerkat.Mix2Proof.DlogProof.FirstMessage} message FirstMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FirstMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.gr = null; + object.hr = null; + } + if (message.gr != null && message.hasOwnProperty("gr")) + object.gr = $root.meerkat.GroupElement.toObject(message.gr, options); + if (message.hr != null && message.hasOwnProperty("hr")) + object.hr = $root.meerkat.GroupElement.toObject(message.hr, options); + return object; + }; + + /** + * Converts this FirstMessage to JSON. + * @function toJSON + * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage + * @instance + * @returns {Object.} JSON object + */ + FirstMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return FirstMessage; + })(); + + DlogProof.FinalMessage = (function() { + + /** + * Properties of a FinalMessage. + * @memberof meerkat.Mix2Proof.DlogProof + * @interface IFinalMessage + * @property {meerkat.IBigInteger} [xcr] FinalMessage xcr + */ + + /** + * Constructs a new FinalMessage. + * @memberof meerkat.Mix2Proof.DlogProof + * @classdesc Represents a FinalMessage. + * @constructor + * @param {meerkat.Mix2Proof.DlogProof.IFinalMessage=} [properties] Properties to set + */ + function FinalMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * FinalMessage xcr. + * @member {(meerkat.IBigInteger|null|undefined)}xcr + * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage + * @instance + */ + FinalMessage.prototype.xcr = null; + + /** + * Creates a new FinalMessage instance using the specified properties. + * @function create + * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage + * @static + * @param {meerkat.Mix2Proof.DlogProof.IFinalMessage=} [properties] Properties to set + * @returns {meerkat.Mix2Proof.DlogProof.FinalMessage} FinalMessage instance + */ + FinalMessage.create = function create(properties) { + return new FinalMessage(properties); + }; + + /** + * Encodes the specified FinalMessage message. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FinalMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage + * @static + * @param {meerkat.Mix2Proof.DlogProof.IFinalMessage} message FinalMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FinalMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.xcr != null && message.hasOwnProperty("xcr")) + $root.meerkat.BigInteger.encode(message.xcr, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FinalMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FinalMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage + * @static + * @param {meerkat.Mix2Proof.DlogProof.IFinalMessage} message FinalMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FinalMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FinalMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Mix2Proof.DlogProof.FinalMessage} FinalMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FinalMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.DlogProof.FinalMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.xcr = $root.meerkat.BigInteger.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FinalMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Mix2Proof.DlogProof.FinalMessage} FinalMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FinalMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FinalMessage message. + * @function verify + * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FinalMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.xcr != null && message.hasOwnProperty("xcr")) { + var error = $root.meerkat.BigInteger.verify(message.xcr); + if (error) + return "xcr." + error; + } + return null; + }; + + /** + * Creates a FinalMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Mix2Proof.DlogProof.FinalMessage} FinalMessage + */ + FinalMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Mix2Proof.DlogProof.FinalMessage) + return object; + var message = new $root.meerkat.Mix2Proof.DlogProof.FinalMessage(); + if (object.xcr != null) { + if (typeof object.xcr !== "object") + throw TypeError(".meerkat.Mix2Proof.DlogProof.FinalMessage.xcr: object expected"); + message.xcr = $root.meerkat.BigInteger.fromObject(object.xcr); + } + return message; + }; + + /** + * Creates a plain object from a FinalMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage + * @static + * @param {meerkat.Mix2Proof.DlogProof.FinalMessage} message FinalMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FinalMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.xcr = null; + if (message.xcr != null && message.hasOwnProperty("xcr")) + object.xcr = $root.meerkat.BigInteger.toObject(message.xcr, options); + return object; + }; + + /** + * Converts this FinalMessage to JSON. + * @function toJSON + * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage + * @instance + * @returns {Object.} JSON object + */ + FinalMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return FinalMessage; + })(); + + return DlogProof; + })(); + + Mix2Proof.AndProof = (function() { + + /** + * Properties of an AndProof. + * @memberof meerkat.Mix2Proof + * @interface IAndProof + */ + + /** + * Constructs a new AndProof. + * @memberof meerkat.Mix2Proof + * @classdesc Represents an AndProof. + * @constructor + * @param {meerkat.Mix2Proof.IAndProof=} [properties] Properties to set + */ + function AndProof(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new AndProof instance using the specified properties. + * @function create + * @memberof meerkat.Mix2Proof.AndProof + * @static + * @param {meerkat.Mix2Proof.IAndProof=} [properties] Properties to set + * @returns {meerkat.Mix2Proof.AndProof} AndProof instance + */ + AndProof.create = function create(properties) { + return new AndProof(properties); + }; + + /** + * Encodes the specified AndProof message. Does not implicitly {@link meerkat.Mix2Proof.AndProof.verify|verify} messages. + * @function encode + * @memberof meerkat.Mix2Proof.AndProof + * @static + * @param {meerkat.Mix2Proof.IAndProof} message AndProof message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AndProof.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified AndProof message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.AndProof.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Mix2Proof.AndProof + * @static + * @param {meerkat.Mix2Proof.IAndProof} message AndProof message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AndProof.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an AndProof message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Mix2Proof.AndProof + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Mix2Proof.AndProof} AndProof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AndProof.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.AndProof(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an AndProof message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Mix2Proof.AndProof + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Mix2Proof.AndProof} AndProof + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AndProof.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an AndProof message. + * @function verify + * @memberof meerkat.Mix2Proof.AndProof + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + AndProof.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates an AndProof message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Mix2Proof.AndProof + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Mix2Proof.AndProof} AndProof + */ + AndProof.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Mix2Proof.AndProof) + return object; + return new $root.meerkat.Mix2Proof.AndProof(); + }; + + /** + * Creates a plain object from an AndProof message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Mix2Proof.AndProof + * @static + * @param {meerkat.Mix2Proof.AndProof} message AndProof + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + AndProof.toObject = function toObject() { + return {}; + }; + + /** + * Converts this AndProof to JSON. + * @function toJSON + * @memberof meerkat.Mix2Proof.AndProof + * @instance + * @returns {Object.} JSON object + */ + AndProof.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + AndProof.FirstMessage = (function() { + + /** + * Properties of a FirstMessage. + * @memberof meerkat.Mix2Proof.AndProof + * @interface IFirstMessage + * @property {meerkat.Mix2Proof.DlogProof.IFirstMessage} [clause0] FirstMessage clause0 + * @property {meerkat.Mix2Proof.DlogProof.IFirstMessage} [clause1] FirstMessage clause1 + */ + + /** + * Constructs a new FirstMessage. + * @memberof meerkat.Mix2Proof.AndProof + * @classdesc Represents a FirstMessage. + * @constructor + * @param {meerkat.Mix2Proof.AndProof.IFirstMessage=} [properties] Properties to set + */ + function FirstMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * FirstMessage clause0. + * @member {(meerkat.Mix2Proof.DlogProof.IFirstMessage|null|undefined)}clause0 + * @memberof meerkat.Mix2Proof.AndProof.FirstMessage + * @instance + */ + FirstMessage.prototype.clause0 = null; + + /** + * FirstMessage clause1. + * @member {(meerkat.Mix2Proof.DlogProof.IFirstMessage|null|undefined)}clause1 + * @memberof meerkat.Mix2Proof.AndProof.FirstMessage + * @instance + */ + FirstMessage.prototype.clause1 = null; + + /** + * Creates a new FirstMessage instance using the specified properties. + * @function create + * @memberof meerkat.Mix2Proof.AndProof.FirstMessage + * @static + * @param {meerkat.Mix2Proof.AndProof.IFirstMessage=} [properties] Properties to set + * @returns {meerkat.Mix2Proof.AndProof.FirstMessage} FirstMessage instance + */ + FirstMessage.create = function create(properties) { + return new FirstMessage(properties); + }; + + /** + * Encodes the specified FirstMessage message. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FirstMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.Mix2Proof.AndProof.FirstMessage + * @static + * @param {meerkat.Mix2Proof.AndProof.IFirstMessage} message FirstMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FirstMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.clause0 != null && message.hasOwnProperty("clause0")) + $root.meerkat.Mix2Proof.DlogProof.FirstMessage.encode(message.clause0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.clause1 != null && message.hasOwnProperty("clause1")) + $root.meerkat.Mix2Proof.DlogProof.FirstMessage.encode(message.clause1, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FirstMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FirstMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Mix2Proof.AndProof.FirstMessage + * @static + * @param {meerkat.Mix2Proof.AndProof.IFirstMessage} message FirstMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FirstMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FirstMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Mix2Proof.AndProof.FirstMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Mix2Proof.AndProof.FirstMessage} FirstMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FirstMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.AndProof.FirstMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clause0 = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.decode(reader, reader.uint32()); + break; + case 2: + message.clause1 = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FirstMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Mix2Proof.AndProof.FirstMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Mix2Proof.AndProof.FirstMessage} FirstMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FirstMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FirstMessage message. + * @function verify + * @memberof meerkat.Mix2Proof.AndProof.FirstMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FirstMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.clause0 != null && message.hasOwnProperty("clause0")) { + var error = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.verify(message.clause0); + if (error) + return "clause0." + error; + } + if (message.clause1 != null && message.hasOwnProperty("clause1")) { + error = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.verify(message.clause1); + if (error) + return "clause1." + error; + } + return null; + }; + + /** + * Creates a FirstMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Mix2Proof.AndProof.FirstMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Mix2Proof.AndProof.FirstMessage} FirstMessage + */ + FirstMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Mix2Proof.AndProof.FirstMessage) + return object; + var message = new $root.meerkat.Mix2Proof.AndProof.FirstMessage(); + if (object.clause0 != null) { + if (typeof object.clause0 !== "object") + throw TypeError(".meerkat.Mix2Proof.AndProof.FirstMessage.clause0: object expected"); + message.clause0 = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.fromObject(object.clause0); + } + if (object.clause1 != null) { + if (typeof object.clause1 !== "object") + throw TypeError(".meerkat.Mix2Proof.AndProof.FirstMessage.clause1: object expected"); + message.clause1 = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.fromObject(object.clause1); + } + return message; + }; + + /** + * Creates a plain object from a FirstMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Mix2Proof.AndProof.FirstMessage + * @static + * @param {meerkat.Mix2Proof.AndProof.FirstMessage} message FirstMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FirstMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.clause0 = null; + object.clause1 = null; + } + if (message.clause0 != null && message.hasOwnProperty("clause0")) + object.clause0 = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.toObject(message.clause0, options); + if (message.clause1 != null && message.hasOwnProperty("clause1")) + object.clause1 = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.toObject(message.clause1, options); + return object; + }; + + /** + * Converts this FirstMessage to JSON. + * @function toJSON + * @memberof meerkat.Mix2Proof.AndProof.FirstMessage + * @instance + * @returns {Object.} JSON object + */ + FirstMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return FirstMessage; + })(); + + AndProof.FinalMessage = (function() { + + /** + * Properties of a FinalMessage. + * @memberof meerkat.Mix2Proof.AndProof + * @interface IFinalMessage + * @property {meerkat.Mix2Proof.DlogProof.IFinalMessage} [clause0] FinalMessage clause0 + * @property {meerkat.Mix2Proof.DlogProof.IFinalMessage} [clause1] FinalMessage clause1 + */ + + /** + * Constructs a new FinalMessage. + * @memberof meerkat.Mix2Proof.AndProof + * @classdesc Represents a FinalMessage. + * @constructor + * @param {meerkat.Mix2Proof.AndProof.IFinalMessage=} [properties] Properties to set + */ + function FinalMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * FinalMessage clause0. + * @member {(meerkat.Mix2Proof.DlogProof.IFinalMessage|null|undefined)}clause0 + * @memberof meerkat.Mix2Proof.AndProof.FinalMessage + * @instance + */ + FinalMessage.prototype.clause0 = null; + + /** + * FinalMessage clause1. + * @member {(meerkat.Mix2Proof.DlogProof.IFinalMessage|null|undefined)}clause1 + * @memberof meerkat.Mix2Proof.AndProof.FinalMessage + * @instance + */ + FinalMessage.prototype.clause1 = null; + + /** + * Creates a new FinalMessage instance using the specified properties. + * @function create + * @memberof meerkat.Mix2Proof.AndProof.FinalMessage + * @static + * @param {meerkat.Mix2Proof.AndProof.IFinalMessage=} [properties] Properties to set + * @returns {meerkat.Mix2Proof.AndProof.FinalMessage} FinalMessage instance + */ + FinalMessage.create = function create(properties) { + return new FinalMessage(properties); + }; + + /** + * Encodes the specified FinalMessage message. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FinalMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.Mix2Proof.AndProof.FinalMessage + * @static + * @param {meerkat.Mix2Proof.AndProof.IFinalMessage} message FinalMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FinalMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.clause0 != null && message.hasOwnProperty("clause0")) + $root.meerkat.Mix2Proof.DlogProof.FinalMessage.encode(message.clause0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.clause1 != null && message.hasOwnProperty("clause1")) + $root.meerkat.Mix2Proof.DlogProof.FinalMessage.encode(message.clause1, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FinalMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FinalMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Mix2Proof.AndProof.FinalMessage + * @static + * @param {meerkat.Mix2Proof.AndProof.IFinalMessage} message FinalMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FinalMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FinalMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Mix2Proof.AndProof.FinalMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Mix2Proof.AndProof.FinalMessage} FinalMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FinalMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.AndProof.FinalMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clause0 = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.decode(reader, reader.uint32()); + break; + case 2: + message.clause1 = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FinalMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Mix2Proof.AndProof.FinalMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Mix2Proof.AndProof.FinalMessage} FinalMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FinalMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FinalMessage message. + * @function verify + * @memberof meerkat.Mix2Proof.AndProof.FinalMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FinalMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.clause0 != null && message.hasOwnProperty("clause0")) { + var error = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.verify(message.clause0); + if (error) + return "clause0." + error; + } + if (message.clause1 != null && message.hasOwnProperty("clause1")) { + error = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.verify(message.clause1); + if (error) + return "clause1." + error; + } + return null; + }; + + /** + * Creates a FinalMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Mix2Proof.AndProof.FinalMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Mix2Proof.AndProof.FinalMessage} FinalMessage + */ + FinalMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Mix2Proof.AndProof.FinalMessage) + return object; + var message = new $root.meerkat.Mix2Proof.AndProof.FinalMessage(); + if (object.clause0 != null) { + if (typeof object.clause0 !== "object") + throw TypeError(".meerkat.Mix2Proof.AndProof.FinalMessage.clause0: object expected"); + message.clause0 = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.fromObject(object.clause0); + } + if (object.clause1 != null) { + if (typeof object.clause1 !== "object") + throw TypeError(".meerkat.Mix2Proof.AndProof.FinalMessage.clause1: object expected"); + message.clause1 = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.fromObject(object.clause1); + } + return message; + }; + + /** + * Creates a plain object from a FinalMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Mix2Proof.AndProof.FinalMessage + * @static + * @param {meerkat.Mix2Proof.AndProof.FinalMessage} message FinalMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FinalMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.clause0 = null; + object.clause1 = null; + } + if (message.clause0 != null && message.hasOwnProperty("clause0")) + object.clause0 = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.toObject(message.clause0, options); + if (message.clause1 != null && message.hasOwnProperty("clause1")) + object.clause1 = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.toObject(message.clause1, options); + return object; + }; + + /** + * Converts this FinalMessage to JSON. + * @function toJSON + * @memberof meerkat.Mix2Proof.AndProof.FinalMessage + * @instance + * @returns {Object.} JSON object + */ + FinalMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return FinalMessage; + })(); + + return AndProof; + })(); + + Mix2Proof.FirstMessage = (function() { + + /** + * Properties of a FirstMessage. + * @memberof meerkat.Mix2Proof + * @interface IFirstMessage + * @property {meerkat.Mix2Proof.AndProof.IFirstMessage} [clause0] FirstMessage clause0 + * @property {meerkat.Mix2Proof.AndProof.IFirstMessage} [clause1] FirstMessage clause1 + */ + + /** + * Constructs a new FirstMessage. + * @memberof meerkat.Mix2Proof + * @classdesc Represents a FirstMessage. + * @constructor + * @param {meerkat.Mix2Proof.IFirstMessage=} [properties] Properties to set + */ + function FirstMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * FirstMessage clause0. + * @member {(meerkat.Mix2Proof.AndProof.IFirstMessage|null|undefined)}clause0 + * @memberof meerkat.Mix2Proof.FirstMessage + * @instance + */ + FirstMessage.prototype.clause0 = null; + + /** + * FirstMessage clause1. + * @member {(meerkat.Mix2Proof.AndProof.IFirstMessage|null|undefined)}clause1 + * @memberof meerkat.Mix2Proof.FirstMessage + * @instance + */ + FirstMessage.prototype.clause1 = null; + + /** + * Creates a new FirstMessage instance using the specified properties. + * @function create + * @memberof meerkat.Mix2Proof.FirstMessage + * @static + * @param {meerkat.Mix2Proof.IFirstMessage=} [properties] Properties to set + * @returns {meerkat.Mix2Proof.FirstMessage} FirstMessage instance + */ + FirstMessage.create = function create(properties) { + return new FirstMessage(properties); + }; + + /** + * Encodes the specified FirstMessage message. Does not implicitly {@link meerkat.Mix2Proof.FirstMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.Mix2Proof.FirstMessage + * @static + * @param {meerkat.Mix2Proof.IFirstMessage} message FirstMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FirstMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.clause0 != null && message.hasOwnProperty("clause0")) + $root.meerkat.Mix2Proof.AndProof.FirstMessage.encode(message.clause0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.clause1 != null && message.hasOwnProperty("clause1")) + $root.meerkat.Mix2Proof.AndProof.FirstMessage.encode(message.clause1, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FirstMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.FirstMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Mix2Proof.FirstMessage + * @static + * @param {meerkat.Mix2Proof.IFirstMessage} message FirstMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FirstMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FirstMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Mix2Proof.FirstMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Mix2Proof.FirstMessage} FirstMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FirstMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.FirstMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clause0 = $root.meerkat.Mix2Proof.AndProof.FirstMessage.decode(reader, reader.uint32()); + break; + case 2: + message.clause1 = $root.meerkat.Mix2Proof.AndProof.FirstMessage.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FirstMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Mix2Proof.FirstMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Mix2Proof.FirstMessage} FirstMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FirstMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FirstMessage message. + * @function verify + * @memberof meerkat.Mix2Proof.FirstMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FirstMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.clause0 != null && message.hasOwnProperty("clause0")) { + var error = $root.meerkat.Mix2Proof.AndProof.FirstMessage.verify(message.clause0); + if (error) + return "clause0." + error; + } + if (message.clause1 != null && message.hasOwnProperty("clause1")) { + error = $root.meerkat.Mix2Proof.AndProof.FirstMessage.verify(message.clause1); + if (error) + return "clause1." + error; + } + return null; + }; + + /** + * Creates a FirstMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Mix2Proof.FirstMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Mix2Proof.FirstMessage} FirstMessage + */ + FirstMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Mix2Proof.FirstMessage) + return object; + var message = new $root.meerkat.Mix2Proof.FirstMessage(); + if (object.clause0 != null) { + if (typeof object.clause0 !== "object") + throw TypeError(".meerkat.Mix2Proof.FirstMessage.clause0: object expected"); + message.clause0 = $root.meerkat.Mix2Proof.AndProof.FirstMessage.fromObject(object.clause0); + } + if (object.clause1 != null) { + if (typeof object.clause1 !== "object") + throw TypeError(".meerkat.Mix2Proof.FirstMessage.clause1: object expected"); + message.clause1 = $root.meerkat.Mix2Proof.AndProof.FirstMessage.fromObject(object.clause1); + } + return message; + }; + + /** + * Creates a plain object from a FirstMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Mix2Proof.FirstMessage + * @static + * @param {meerkat.Mix2Proof.FirstMessage} message FirstMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FirstMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.clause0 = null; + object.clause1 = null; + } + if (message.clause0 != null && message.hasOwnProperty("clause0")) + object.clause0 = $root.meerkat.Mix2Proof.AndProof.FirstMessage.toObject(message.clause0, options); + if (message.clause1 != null && message.hasOwnProperty("clause1")) + object.clause1 = $root.meerkat.Mix2Proof.AndProof.FirstMessage.toObject(message.clause1, options); + return object; + }; + + /** + * Converts this FirstMessage to JSON. + * @function toJSON + * @memberof meerkat.Mix2Proof.FirstMessage + * @instance + * @returns {Object.} JSON object + */ + FirstMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return FirstMessage; + })(); + + Mix2Proof.FinalMessage = (function() { + + /** + * Properties of a FinalMessage. + * @memberof meerkat.Mix2Proof + * @interface IFinalMessage + * @property {meerkat.Mix2Proof.AndProof.IFinalMessage} [clause0] FinalMessage clause0 + * @property {meerkat.Mix2Proof.AndProof.IFinalMessage} [clause1] FinalMessage clause1 + * @property {meerkat.IBigInteger} [c0] FinalMessage c0 + */ + + /** + * Constructs a new FinalMessage. + * @memberof meerkat.Mix2Proof + * @classdesc Represents a FinalMessage. + * @constructor + * @param {meerkat.Mix2Proof.IFinalMessage=} [properties] Properties to set + */ + function FinalMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * FinalMessage clause0. + * @member {(meerkat.Mix2Proof.AndProof.IFinalMessage|null|undefined)}clause0 + * @memberof meerkat.Mix2Proof.FinalMessage + * @instance + */ + FinalMessage.prototype.clause0 = null; + + /** + * FinalMessage clause1. + * @member {(meerkat.Mix2Proof.AndProof.IFinalMessage|null|undefined)}clause1 + * @memberof meerkat.Mix2Proof.FinalMessage + * @instance + */ + FinalMessage.prototype.clause1 = null; + + /** + * FinalMessage c0. + * @member {(meerkat.IBigInteger|null|undefined)}c0 + * @memberof meerkat.Mix2Proof.FinalMessage + * @instance + */ + FinalMessage.prototype.c0 = null; + + /** + * Creates a new FinalMessage instance using the specified properties. + * @function create + * @memberof meerkat.Mix2Proof.FinalMessage + * @static + * @param {meerkat.Mix2Proof.IFinalMessage=} [properties] Properties to set + * @returns {meerkat.Mix2Proof.FinalMessage} FinalMessage instance + */ + FinalMessage.create = function create(properties) { + return new FinalMessage(properties); + }; + + /** + * Encodes the specified FinalMessage message. Does not implicitly {@link meerkat.Mix2Proof.FinalMessage.verify|verify} messages. + * @function encode + * @memberof meerkat.Mix2Proof.FinalMessage + * @static + * @param {meerkat.Mix2Proof.IFinalMessage} message FinalMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FinalMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.clause0 != null && message.hasOwnProperty("clause0")) + $root.meerkat.Mix2Proof.AndProof.FinalMessage.encode(message.clause0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.clause1 != null && message.hasOwnProperty("clause1")) + $root.meerkat.Mix2Proof.AndProof.FinalMessage.encode(message.clause1, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.c0 != null && message.hasOwnProperty("c0")) + $root.meerkat.BigInteger.encode(message.c0, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FinalMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.FinalMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Mix2Proof.FinalMessage + * @static + * @param {meerkat.Mix2Proof.IFinalMessage} message FinalMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FinalMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FinalMessage message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Mix2Proof.FinalMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Mix2Proof.FinalMessage} FinalMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FinalMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.FinalMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clause0 = $root.meerkat.Mix2Proof.AndProof.FinalMessage.decode(reader, reader.uint32()); + break; + case 2: + message.clause1 = $root.meerkat.Mix2Proof.AndProof.FinalMessage.decode(reader, reader.uint32()); + break; + case 3: + message.c0 = $root.meerkat.BigInteger.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FinalMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Mix2Proof.FinalMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Mix2Proof.FinalMessage} FinalMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FinalMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FinalMessage message. + * @function verify + * @memberof meerkat.Mix2Proof.FinalMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FinalMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.clause0 != null && message.hasOwnProperty("clause0")) { + var error = $root.meerkat.Mix2Proof.AndProof.FinalMessage.verify(message.clause0); + if (error) + return "clause0." + error; + } + if (message.clause1 != null && message.hasOwnProperty("clause1")) { + error = $root.meerkat.Mix2Proof.AndProof.FinalMessage.verify(message.clause1); + if (error) + return "clause1." + error; + } + if (message.c0 != null && message.hasOwnProperty("c0")) { + error = $root.meerkat.BigInteger.verify(message.c0); + if (error) + return "c0." + error; + } + return null; + }; + + /** + * Creates a FinalMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Mix2Proof.FinalMessage + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Mix2Proof.FinalMessage} FinalMessage + */ + FinalMessage.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Mix2Proof.FinalMessage) + return object; + var message = new $root.meerkat.Mix2Proof.FinalMessage(); + if (object.clause0 != null) { + if (typeof object.clause0 !== "object") + throw TypeError(".meerkat.Mix2Proof.FinalMessage.clause0: object expected"); + message.clause0 = $root.meerkat.Mix2Proof.AndProof.FinalMessage.fromObject(object.clause0); + } + if (object.clause1 != null) { + if (typeof object.clause1 !== "object") + throw TypeError(".meerkat.Mix2Proof.FinalMessage.clause1: object expected"); + message.clause1 = $root.meerkat.Mix2Proof.AndProof.FinalMessage.fromObject(object.clause1); + } + if (object.c0 != null) { + if (typeof object.c0 !== "object") + throw TypeError(".meerkat.Mix2Proof.FinalMessage.c0: object expected"); + message.c0 = $root.meerkat.BigInteger.fromObject(object.c0); + } + return message; + }; + + /** + * Creates a plain object from a FinalMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Mix2Proof.FinalMessage + * @static + * @param {meerkat.Mix2Proof.FinalMessage} message FinalMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FinalMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.clause0 = null; + object.clause1 = null; + object.c0 = null; + } + if (message.clause0 != null && message.hasOwnProperty("clause0")) + object.clause0 = $root.meerkat.Mix2Proof.AndProof.FinalMessage.toObject(message.clause0, options); + if (message.clause1 != null && message.hasOwnProperty("clause1")) + object.clause1 = $root.meerkat.Mix2Proof.AndProof.FinalMessage.toObject(message.clause1, options); + if (message.c0 != null && message.hasOwnProperty("c0")) + object.c0 = $root.meerkat.BigInteger.toObject(message.c0, options); + return object; + }; + + /** + * Converts this FinalMessage to JSON. + * @function toJSON + * @memberof meerkat.Mix2Proof.FinalMessage + * @instance + * @returns {Object.} JSON object + */ + FinalMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return FinalMessage; + })(); + + Mix2Proof.Location = (function() { + + /** + * Properties of a Location. + * @memberof meerkat.Mix2Proof + * @interface ILocation + * @property {number} [layer] Location layer + * @property {number} [switchIdx] Location switchIdx + * @property {number} [out0] Location out0 + * @property {number} [out1] Location out1 + */ + + /** + * Constructs a new Location. + * @memberof meerkat.Mix2Proof + * @classdesc Represents a Location. + * @constructor + * @param {meerkat.Mix2Proof.ILocation=} [properties] Properties to set + */ + function Location(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Location layer. + * @member {number}layer + * @memberof meerkat.Mix2Proof.Location + * @instance + */ + Location.prototype.layer = 0; + + /** + * Location switchIdx. + * @member {number}switchIdx + * @memberof meerkat.Mix2Proof.Location + * @instance + */ + Location.prototype.switchIdx = 0; + + /** + * Location out0. + * @member {number}out0 + * @memberof meerkat.Mix2Proof.Location + * @instance + */ + Location.prototype.out0 = 0; + + /** + * Location out1. + * @member {number}out1 + * @memberof meerkat.Mix2Proof.Location + * @instance + */ + Location.prototype.out1 = 0; + + /** + * Creates a new Location instance using the specified properties. + * @function create + * @memberof meerkat.Mix2Proof.Location + * @static + * @param {meerkat.Mix2Proof.ILocation=} [properties] Properties to set + * @returns {meerkat.Mix2Proof.Location} Location instance + */ + Location.create = function create(properties) { + return new Location(properties); + }; + + /** + * Encodes the specified Location message. Does not implicitly {@link meerkat.Mix2Proof.Location.verify|verify} messages. + * @function encode + * @memberof meerkat.Mix2Proof.Location + * @static + * @param {meerkat.Mix2Proof.ILocation} message Location message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Location.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.layer != null && message.hasOwnProperty("layer")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.layer); + if (message.switchIdx != null && message.hasOwnProperty("switchIdx")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.switchIdx); + if (message.out0 != null && message.hasOwnProperty("out0")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.out0); + if (message.out1 != null && message.hasOwnProperty("out1")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.out1); + return writer; + }; + + /** + * Encodes the specified Location message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.Location.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Mix2Proof.Location + * @static + * @param {meerkat.Mix2Proof.ILocation} message Location message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Location.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Location message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Mix2Proof.Location + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Mix2Proof.Location} Location + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Location.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.Location(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.layer = reader.int32(); + break; + case 2: + message.switchIdx = reader.int32(); + break; + case 3: + message.out0 = reader.int32(); + break; + case 4: + message.out1 = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Location message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Mix2Proof.Location + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Mix2Proof.Location} Location + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Location.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Location message. + * @function verify + * @memberof meerkat.Mix2Proof.Location + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Location.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.layer != null && message.hasOwnProperty("layer")) + if (!$util.isInteger(message.layer)) + return "layer: integer expected"; + if (message.switchIdx != null && message.hasOwnProperty("switchIdx")) + if (!$util.isInteger(message.switchIdx)) + return "switchIdx: integer expected"; + if (message.out0 != null && message.hasOwnProperty("out0")) + if (!$util.isInteger(message.out0)) + return "out0: integer expected"; + if (message.out1 != null && message.hasOwnProperty("out1")) + if (!$util.isInteger(message.out1)) + return "out1: integer expected"; + return null; + }; + + /** + * Creates a Location message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Mix2Proof.Location + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Mix2Proof.Location} Location + */ + Location.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Mix2Proof.Location) + return object; + var message = new $root.meerkat.Mix2Proof.Location(); + if (object.layer != null) + message.layer = object.layer | 0; + if (object.switchIdx != null) + message.switchIdx = object.switchIdx | 0; + if (object.out0 != null) + message.out0 = object.out0 | 0; + if (object.out1 != null) + message.out1 = object.out1 | 0; + return message; + }; + + /** + * Creates a plain object from a Location message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Mix2Proof.Location + * @static + * @param {meerkat.Mix2Proof.Location} message Location + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Location.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.layer = 0; + object.switchIdx = 0; + object.out0 = 0; + object.out1 = 0; + } + if (message.layer != null && message.hasOwnProperty("layer")) + object.layer = message.layer; + if (message.switchIdx != null && message.hasOwnProperty("switchIdx")) + object.switchIdx = message.switchIdx; + if (message.out0 != null && message.hasOwnProperty("out0")) + object.out0 = message.out0; + if (message.out1 != null && message.hasOwnProperty("out1")) + object.out1 = message.out1; + return object; + }; + + /** + * Converts this Location to JSON. + * @function toJSON + * @memberof meerkat.Mix2Proof.Location + * @instance + * @returns {Object.} JSON object + */ + Location.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Location; + })(); + + return Mix2Proof; + })(); + + meerkat.ConnectionServerData = (function() { + + /** + * Properties of a ConnectionServerData. + * @memberof meerkat + * @interface IConnectionServerData + * @property {string} [serverUrl] ConnectionServerData serverUrl + * @property {number|Long} [nonce] ConnectionServerData nonce + */ + + /** + * Constructs a new ConnectionServerData. + * @memberof meerkat + * @classdesc Represents a ConnectionServerData. + * @constructor + * @param {meerkat.IConnectionServerData=} [properties] Properties to set + */ + function ConnectionServerData(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ConnectionServerData serverUrl. + * @member {string}serverUrl + * @memberof meerkat.ConnectionServerData + * @instance + */ + ConnectionServerData.prototype.serverUrl = ""; + + /** + * ConnectionServerData nonce. + * @member {number|Long}nonce + * @memberof meerkat.ConnectionServerData + * @instance + */ + ConnectionServerData.prototype.nonce = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * Creates a new ConnectionServerData instance using the specified properties. + * @function create + * @memberof meerkat.ConnectionServerData + * @static + * @param {meerkat.IConnectionServerData=} [properties] Properties to set + * @returns {meerkat.ConnectionServerData} ConnectionServerData instance + */ + ConnectionServerData.create = function create(properties) { + return new ConnectionServerData(properties); + }; + + /** + * Encodes the specified ConnectionServerData message. Does not implicitly {@link meerkat.ConnectionServerData.verify|verify} messages. + * @function encode + * @memberof meerkat.ConnectionServerData + * @static + * @param {meerkat.IConnectionServerData} message ConnectionServerData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConnectionServerData.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.serverUrl != null && message.hasOwnProperty("serverUrl")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.serverUrl); + if (message.nonce != null && message.hasOwnProperty("nonce")) + writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.nonce); + return writer; + }; + + /** + * Encodes the specified ConnectionServerData message, length delimited. Does not implicitly {@link meerkat.ConnectionServerData.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.ConnectionServerData + * @static + * @param {meerkat.IConnectionServerData} message ConnectionServerData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConnectionServerData.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ConnectionServerData message from the specified reader or buffer. + * @function decode + * @memberof meerkat.ConnectionServerData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.ConnectionServerData} ConnectionServerData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConnectionServerData.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ConnectionServerData(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.serverUrl = reader.string(); + break; + case 2: + message.nonce = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ConnectionServerData message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.ConnectionServerData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.ConnectionServerData} ConnectionServerData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConnectionServerData.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ConnectionServerData message. + * @function verify + * @memberof meerkat.ConnectionServerData + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ConnectionServerData.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.serverUrl != null && message.hasOwnProperty("serverUrl")) + if (!$util.isString(message.serverUrl)) + return "serverUrl: string expected"; + if (message.nonce != null && message.hasOwnProperty("nonce")) + if (!$util.isInteger(message.nonce) && !(message.nonce && $util.isInteger(message.nonce.low) && $util.isInteger(message.nonce.high))) + return "nonce: integer|Long expected"; + return null; + }; + + /** + * Creates a ConnectionServerData message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.ConnectionServerData + * @static + * @param {Object.} object Plain object + * @returns {meerkat.ConnectionServerData} ConnectionServerData + */ + ConnectionServerData.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.ConnectionServerData) + return object; + var message = new $root.meerkat.ConnectionServerData(); + if (object.serverUrl != null) + message.serverUrl = String(object.serverUrl); + if (object.nonce != null) + if ($util.Long) + (message.nonce = $util.Long.fromValue(object.nonce)).unsigned = true; + else if (typeof object.nonce === "string") + message.nonce = parseInt(object.nonce, 10); + else if (typeof object.nonce === "number") + message.nonce = object.nonce; + else if (typeof object.nonce === "object") + message.nonce = new $util.LongBits(object.nonce.low >>> 0, object.nonce.high >>> 0).toNumber(true); + return message; + }; + + /** + * Creates a plain object from a ConnectionServerData message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.ConnectionServerData + * @static + * @param {meerkat.ConnectionServerData} message ConnectionServerData + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ConnectionServerData.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.serverUrl = ""; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.nonce = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.nonce = options.longs === String ? "0" : 0; + } + if (message.serverUrl != null && message.hasOwnProperty("serverUrl")) + object.serverUrl = message.serverUrl; + if (message.nonce != null && message.hasOwnProperty("nonce")) + if (typeof message.nonce === "number") + object.nonce = options.longs === String ? String(message.nonce) : message.nonce; + else + object.nonce = options.longs === String ? $util.Long.prototype.toString.call(message.nonce) : options.longs === Number ? new $util.LongBits(message.nonce.low >>> 0, message.nonce.high >>> 0).toNumber(true) : message.nonce; + return object; + }; + + /** + * Converts this ConnectionServerData to JSON. + * @function toJSON + * @memberof meerkat.ConnectionServerData + * @instance + * @returns {Object.} JSON object + */ + ConnectionServerData.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ConnectionServerData; + })(); + + meerkat.ConnectionClientData = (function() { + + /** + * Properties of a ConnectionClientData. + * @memberof meerkat + * @interface IConnectionClientData + * @property {Uint8Array} [scannerId] ConnectionClientData scannerId + * @property {meerkat.ISignatureVerificationKey} [scannerPK] ConnectionClientData scannerPK + * @property {number|Long} [nonce] ConnectionClientData nonce + */ + + /** + * Constructs a new ConnectionClientData. + * @memberof meerkat + * @classdesc Represents a ConnectionClientData. + * @constructor + * @param {meerkat.IConnectionClientData=} [properties] Properties to set + */ + function ConnectionClientData(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ConnectionClientData scannerId. + * @member {Uint8Array}scannerId + * @memberof meerkat.ConnectionClientData + * @instance + */ + ConnectionClientData.prototype.scannerId = $util.newBuffer([]); + + /** + * ConnectionClientData scannerPK. + * @member {(meerkat.ISignatureVerificationKey|null|undefined)}scannerPK + * @memberof meerkat.ConnectionClientData + * @instance + */ + ConnectionClientData.prototype.scannerPK = null; + + /** + * ConnectionClientData nonce. + * @member {number|Long}nonce + * @memberof meerkat.ConnectionClientData + * @instance + */ + ConnectionClientData.prototype.nonce = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * ConnectionClientData id. + * @member {string|undefined} id + * @memberof meerkat.ConnectionClientData + * @instance + */ + Object.defineProperty(ConnectionClientData.prototype, "id", { + get: $util.oneOfGetter($oneOfFields = ["scannerId", "scannerPK"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ConnectionClientData instance using the specified properties. + * @function create + * @memberof meerkat.ConnectionClientData + * @static + * @param {meerkat.IConnectionClientData=} [properties] Properties to set + * @returns {meerkat.ConnectionClientData} ConnectionClientData instance + */ + ConnectionClientData.create = function create(properties) { + return new ConnectionClientData(properties); + }; + + /** + * Encodes the specified ConnectionClientData message. Does not implicitly {@link meerkat.ConnectionClientData.verify|verify} messages. + * @function encode + * @memberof meerkat.ConnectionClientData + * @static + * @param {meerkat.IConnectionClientData} message ConnectionClientData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConnectionClientData.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.scannerId != null && message.hasOwnProperty("scannerId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.scannerId); + if (message.scannerPK != null && message.hasOwnProperty("scannerPK")) + $root.meerkat.SignatureVerificationKey.encode(message.scannerPK, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.nonce != null && message.hasOwnProperty("nonce")) + writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.nonce); + return writer; + }; + + /** + * Encodes the specified ConnectionClientData message, length delimited. Does not implicitly {@link meerkat.ConnectionClientData.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.ConnectionClientData + * @static + * @param {meerkat.IConnectionClientData} message ConnectionClientData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConnectionClientData.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ConnectionClientData message from the specified reader or buffer. + * @function decode + * @memberof meerkat.ConnectionClientData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.ConnectionClientData} ConnectionClientData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConnectionClientData.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ConnectionClientData(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.scannerId = reader.bytes(); + break; + case 2: + message.scannerPK = $root.meerkat.SignatureVerificationKey.decode(reader, reader.uint32()); + break; + case 3: + message.nonce = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ConnectionClientData message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.ConnectionClientData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.ConnectionClientData} ConnectionClientData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConnectionClientData.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ConnectionClientData message. + * @function verify + * @memberof meerkat.ConnectionClientData + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ConnectionClientData.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.scannerId != null && message.hasOwnProperty("scannerId")) { + properties.id = 1; + if (!(message.scannerId && typeof message.scannerId.length === "number" || $util.isString(message.scannerId))) + return "scannerId: buffer expected"; + } + if (message.scannerPK != null && message.hasOwnProperty("scannerPK")) { + if (properties.id === 1) + return "id: multiple values"; + properties.id = 1; + var error = $root.meerkat.SignatureVerificationKey.verify(message.scannerPK); + if (error) + return "scannerPK." + error; + } + if (message.nonce != null && message.hasOwnProperty("nonce")) + if (!$util.isInteger(message.nonce) && !(message.nonce && $util.isInteger(message.nonce.low) && $util.isInteger(message.nonce.high))) + return "nonce: integer|Long expected"; + return null; + }; + + /** + * Creates a ConnectionClientData message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.ConnectionClientData + * @static + * @param {Object.} object Plain object + * @returns {meerkat.ConnectionClientData} ConnectionClientData + */ + ConnectionClientData.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.ConnectionClientData) + return object; + var message = new $root.meerkat.ConnectionClientData(); + if (object.scannerId != null) + if (typeof object.scannerId === "string") + $util.base64.decode(object.scannerId, message.scannerId = $util.newBuffer($util.base64.length(object.scannerId)), 0); + else if (object.scannerId.length) + message.scannerId = object.scannerId; + if (object.scannerPK != null) { + if (typeof object.scannerPK !== "object") + throw TypeError(".meerkat.ConnectionClientData.scannerPK: object expected"); + message.scannerPK = $root.meerkat.SignatureVerificationKey.fromObject(object.scannerPK); + } + if (object.nonce != null) + if ($util.Long) + (message.nonce = $util.Long.fromValue(object.nonce)).unsigned = true; + else if (typeof object.nonce === "string") + message.nonce = parseInt(object.nonce, 10); + else if (typeof object.nonce === "number") + message.nonce = object.nonce; + else if (typeof object.nonce === "object") + message.nonce = new $util.LongBits(object.nonce.low >>> 0, object.nonce.high >>> 0).toNumber(true); + return message; + }; + + /** + * Creates a plain object from a ConnectionClientData message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.ConnectionClientData + * @static + * @param {meerkat.ConnectionClientData} message ConnectionClientData + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ConnectionClientData.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.nonce = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.nonce = options.longs === String ? "0" : 0; + if (message.scannerId != null && message.hasOwnProperty("scannerId")) { + object.scannerId = options.bytes === String ? $util.base64.encode(message.scannerId, 0, message.scannerId.length) : options.bytes === Array ? Array.prototype.slice.call(message.scannerId) : message.scannerId; + if (options.oneofs) + object.id = "scannerId"; + } + if (message.scannerPK != null && message.hasOwnProperty("scannerPK")) { + object.scannerPK = $root.meerkat.SignatureVerificationKey.toObject(message.scannerPK, options); + if (options.oneofs) + object.id = "scannerPK"; + } + if (message.nonce != null && message.hasOwnProperty("nonce")) + if (typeof message.nonce === "number") + object.nonce = options.longs === String ? String(message.nonce) : message.nonce; + else + object.nonce = options.longs === String ? $util.Long.prototype.toString.call(message.nonce) : options.longs === Number ? new $util.LongBits(message.nonce.low >>> 0, message.nonce.high >>> 0).toNumber(true) : message.nonce; + return object; + }; + + /** + * Converts this ConnectionClientData to JSON. + * @function toJSON + * @memberof meerkat.ConnectionClientData + * @instance + * @returns {Object.} JSON object + */ + ConnectionClientData.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ConnectionClientData; + })(); + + meerkat.ScannedBallot = (function() { + + /** + * Properties of a ScannedBallot. + * @memberof meerkat + * @interface IScannedBallot + * @property {Uint8Array} [channel] ScannedBallot channel + * @property {meerkat.ISignedEncryptedBallot} [signedEncryptedBallot] ScannedBallot signedEncryptedBallot + */ + + /** + * Constructs a new ScannedBallot. + * @memberof meerkat + * @classdesc Represents a ScannedBallot. + * @constructor + * @param {meerkat.IScannedBallot=} [properties] Properties to set + */ + function ScannedBallot(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ScannedBallot channel. + * @member {Uint8Array}channel + * @memberof meerkat.ScannedBallot + * @instance + */ + ScannedBallot.prototype.channel = $util.newBuffer([]); + + /** + * ScannedBallot signedEncryptedBallot. + * @member {(meerkat.ISignedEncryptedBallot|null|undefined)}signedEncryptedBallot + * @memberof meerkat.ScannedBallot + * @instance + */ + ScannedBallot.prototype.signedEncryptedBallot = null; + + /** + * Creates a new ScannedBallot instance using the specified properties. + * @function create + * @memberof meerkat.ScannedBallot + * @static + * @param {meerkat.IScannedBallot=} [properties] Properties to set + * @returns {meerkat.ScannedBallot} ScannedBallot instance + */ + ScannedBallot.create = function create(properties) { + return new ScannedBallot(properties); + }; + + /** + * Encodes the specified ScannedBallot message. Does not implicitly {@link meerkat.ScannedBallot.verify|verify} messages. + * @function encode + * @memberof meerkat.ScannedBallot + * @static + * @param {meerkat.IScannedBallot} message ScannedBallot message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ScannedBallot.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.channel != null && message.hasOwnProperty("channel")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.channel); + if (message.signedEncryptedBallot != null && message.hasOwnProperty("signedEncryptedBallot")) + $root.meerkat.SignedEncryptedBallot.encode(message.signedEncryptedBallot, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ScannedBallot message, length delimited. Does not implicitly {@link meerkat.ScannedBallot.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.ScannedBallot + * @static + * @param {meerkat.IScannedBallot} message ScannedBallot message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ScannedBallot.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ScannedBallot message from the specified reader or buffer. + * @function decode + * @memberof meerkat.ScannedBallot + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.ScannedBallot} ScannedBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ScannedBallot.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ScannedBallot(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.channel = reader.bytes(); + break; + case 2: + message.signedEncryptedBallot = $root.meerkat.SignedEncryptedBallot.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ScannedBallot message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.ScannedBallot + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.ScannedBallot} ScannedBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ScannedBallot.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ScannedBallot message. + * @function verify + * @memberof meerkat.ScannedBallot + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ScannedBallot.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.channel != null && message.hasOwnProperty("channel")) + if (!(message.channel && typeof message.channel.length === "number" || $util.isString(message.channel))) + return "channel: buffer expected"; + if (message.signedEncryptedBallot != null && message.hasOwnProperty("signedEncryptedBallot")) { + var error = $root.meerkat.SignedEncryptedBallot.verify(message.signedEncryptedBallot); + if (error) + return "signedEncryptedBallot." + error; + } + return null; + }; + + /** + * Creates a ScannedBallot message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.ScannedBallot + * @static + * @param {Object.} object Plain object + * @returns {meerkat.ScannedBallot} ScannedBallot + */ + ScannedBallot.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.ScannedBallot) + return object; + var message = new $root.meerkat.ScannedBallot(); + if (object.channel != null) + if (typeof object.channel === "string") + $util.base64.decode(object.channel, message.channel = $util.newBuffer($util.base64.length(object.channel)), 0); + else if (object.channel.length) + message.channel = object.channel; + if (object.signedEncryptedBallot != null) { + if (typeof object.signedEncryptedBallot !== "object") + throw TypeError(".meerkat.ScannedBallot.signedEncryptedBallot: object expected"); + message.signedEncryptedBallot = $root.meerkat.SignedEncryptedBallot.fromObject(object.signedEncryptedBallot); + } + return message; + }; + + /** + * Creates a plain object from a ScannedBallot message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.ScannedBallot + * @static + * @param {meerkat.ScannedBallot} message ScannedBallot + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ScannedBallot.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.channel = options.bytes === String ? "" : []; + object.signedEncryptedBallot = null; + } + if (message.channel != null && message.hasOwnProperty("channel")) + object.channel = options.bytes === String ? $util.base64.encode(message.channel, 0, message.channel.length) : options.bytes === Array ? Array.prototype.slice.call(message.channel) : message.channel; + if (message.signedEncryptedBallot != null && message.hasOwnProperty("signedEncryptedBallot")) + object.signedEncryptedBallot = $root.meerkat.SignedEncryptedBallot.toObject(message.signedEncryptedBallot, options); + return object; + }; + + /** + * Converts this ScannedBallot to JSON. + * @function toJSON + * @memberof meerkat.ScannedBallot + * @instance + * @returns {Object.} JSON object + */ + ScannedBallot.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ScannedBallot; + })(); + + meerkat.ScanError = (function() { + + /** + * Properties of a ScanError. + * @memberof meerkat + * @interface IScanError + * @property {string} [msg] ScanError msg + */ + + /** + * Constructs a new ScanError. + * @memberof meerkat + * @classdesc Represents a ScanError. + * @constructor + * @param {meerkat.IScanError=} [properties] Properties to set + */ + function ScanError(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ScanError msg. + * @member {string}msg + * @memberof meerkat.ScanError + * @instance + */ + ScanError.prototype.msg = ""; + + /** + * Creates a new ScanError instance using the specified properties. + * @function create + * @memberof meerkat.ScanError + * @static + * @param {meerkat.IScanError=} [properties] Properties to set + * @returns {meerkat.ScanError} ScanError instance + */ + ScanError.create = function create(properties) { + return new ScanError(properties); + }; + + /** + * Encodes the specified ScanError message. Does not implicitly {@link meerkat.ScanError.verify|verify} messages. + * @function encode + * @memberof meerkat.ScanError + * @static + * @param {meerkat.IScanError} message ScanError message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ScanError.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.msg != null && message.hasOwnProperty("msg")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.msg); + return writer; + }; + + /** + * Encodes the specified ScanError message, length delimited. Does not implicitly {@link meerkat.ScanError.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.ScanError + * @static + * @param {meerkat.IScanError} message ScanError message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ScanError.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ScanError message from the specified reader or buffer. + * @function decode + * @memberof meerkat.ScanError + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.ScanError} ScanError + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ScanError.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ScanError(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.msg = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ScanError message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.ScanError + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.ScanError} ScanError + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ScanError.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ScanError message. + * @function verify + * @memberof meerkat.ScanError + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ScanError.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.msg != null && message.hasOwnProperty("msg")) + if (!$util.isString(message.msg)) + return "msg: string expected"; + return null; + }; + + /** + * Creates a ScanError message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.ScanError + * @static + * @param {Object.} object Plain object + * @returns {meerkat.ScanError} ScanError + */ + ScanError.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.ScanError) + return object; + var message = new $root.meerkat.ScanError(); + if (object.msg != null) + message.msg = String(object.msg); + return message; + }; + + /** + * Creates a plain object from a ScanError message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.ScanError + * @static + * @param {meerkat.ScanError} message ScanError + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ScanError.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.msg = ""; + if (message.msg != null && message.hasOwnProperty("msg")) + object.msg = message.msg; + return object; + }; + + /** + * Converts this ScanError to JSON. + * @function toJSON + * @memberof meerkat.ScanError + * @instance + * @returns {Object.} JSON object + */ + ScanError.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ScanError; + })(); + + meerkat.ScannedData = (function() { + + /** + * Properties of a ScannedData. + * @memberof meerkat + * @interface IScannedData + * @property {meerkat.IScannedBallot} [ballot] ScannedData ballot + * @property {meerkat.IScanError} [error] ScannedData error + * @property {number|Long} [serial] ScannedData serial + * @property {Uint8Array} [scannerId] ScannedData scannerId + */ + + /** + * Constructs a new ScannedData. + * @memberof meerkat + * @classdesc Represents a ScannedData. + * @constructor + * @param {meerkat.IScannedData=} [properties] Properties to set + */ + function ScannedData(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ScannedData ballot. + * @member {(meerkat.IScannedBallot|null|undefined)}ballot + * @memberof meerkat.ScannedData + * @instance + */ + ScannedData.prototype.ballot = null; + + /** + * ScannedData error. + * @member {(meerkat.IScanError|null|undefined)}error + * @memberof meerkat.ScannedData + * @instance + */ + ScannedData.prototype.error = null; + + /** + * ScannedData serial. + * @member {number|Long}serial + * @memberof meerkat.ScannedData + * @instance + */ + ScannedData.prototype.serial = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * ScannedData scannerId. + * @member {Uint8Array}scannerId + * @memberof meerkat.ScannedData + * @instance + */ + ScannedData.prototype.scannerId = $util.newBuffer([]); + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * ScannedData data. + * @member {string|undefined} data + * @memberof meerkat.ScannedData + * @instance + */ + Object.defineProperty(ScannedData.prototype, "data", { + get: $util.oneOfGetter($oneOfFields = ["ballot", "error"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ScannedData instance using the specified properties. + * @function create + * @memberof meerkat.ScannedData + * @static + * @param {meerkat.IScannedData=} [properties] Properties to set + * @returns {meerkat.ScannedData} ScannedData instance + */ + ScannedData.create = function create(properties) { + return new ScannedData(properties); + }; + + /** + * Encodes the specified ScannedData message. Does not implicitly {@link meerkat.ScannedData.verify|verify} messages. + * @function encode + * @memberof meerkat.ScannedData + * @static + * @param {meerkat.IScannedData} message ScannedData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ScannedData.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.ballot != null && message.hasOwnProperty("ballot")) + $root.meerkat.ScannedBallot.encode(message.ballot, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.error != null && message.hasOwnProperty("error")) + $root.meerkat.ScanError.encode(message.error, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.serial != null && message.hasOwnProperty("serial")) + writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.serial); + if (message.scannerId != null && message.hasOwnProperty("scannerId")) + writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.scannerId); + return writer; + }; + + /** + * Encodes the specified ScannedData message, length delimited. Does not implicitly {@link meerkat.ScannedData.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.ScannedData + * @static + * @param {meerkat.IScannedData} message ScannedData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ScannedData.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ScannedData message from the specified reader or buffer. + * @function decode + * @memberof meerkat.ScannedData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.ScannedData} ScannedData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ScannedData.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ScannedData(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + message.ballot = $root.meerkat.ScannedBallot.decode(reader, reader.uint32()); + break; + case 3: + message.error = $root.meerkat.ScanError.decode(reader, reader.uint32()); + break; + case 4: + message.serial = reader.uint64(); + break; + case 5: + message.scannerId = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ScannedData message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.ScannedData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.ScannedData} ScannedData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ScannedData.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ScannedData message. + * @function verify + * @memberof meerkat.ScannedData + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ScannedData.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.ballot != null && message.hasOwnProperty("ballot")) { + properties.data = 1; + var error = $root.meerkat.ScannedBallot.verify(message.ballot); + if (error) + return "ballot." + error; + } + if (message.error != null && message.hasOwnProperty("error")) { + if (properties.data === 1) + return "data: multiple values"; + properties.data = 1; + error = $root.meerkat.ScanError.verify(message.error); + if (error) + return "error." + error; + } + if (message.serial != null && message.hasOwnProperty("serial")) + if (!$util.isInteger(message.serial) && !(message.serial && $util.isInteger(message.serial.low) && $util.isInteger(message.serial.high))) + return "serial: integer|Long expected"; + if (message.scannerId != null && message.hasOwnProperty("scannerId")) + if (!(message.scannerId && typeof message.scannerId.length === "number" || $util.isString(message.scannerId))) + return "scannerId: buffer expected"; + return null; + }; + + /** + * Creates a ScannedData message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.ScannedData + * @static + * @param {Object.} object Plain object + * @returns {meerkat.ScannedData} ScannedData + */ + ScannedData.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.ScannedData) + return object; + var message = new $root.meerkat.ScannedData(); + if (object.ballot != null) { + if (typeof object.ballot !== "object") + throw TypeError(".meerkat.ScannedData.ballot: object expected"); + message.ballot = $root.meerkat.ScannedBallot.fromObject(object.ballot); + } + if (object.error != null) { + if (typeof object.error !== "object") + throw TypeError(".meerkat.ScannedData.error: object expected"); + message.error = $root.meerkat.ScanError.fromObject(object.error); + } + if (object.serial != null) + if ($util.Long) + (message.serial = $util.Long.fromValue(object.serial)).unsigned = true; + else if (typeof object.serial === "string") + message.serial = parseInt(object.serial, 10); + else if (typeof object.serial === "number") + message.serial = object.serial; + else if (typeof object.serial === "object") + message.serial = new $util.LongBits(object.serial.low >>> 0, object.serial.high >>> 0).toNumber(true); + if (object.scannerId != null) + if (typeof object.scannerId === "string") + $util.base64.decode(object.scannerId, message.scannerId = $util.newBuffer($util.base64.length(object.scannerId)), 0); + else if (object.scannerId.length) + message.scannerId = object.scannerId; + return message; + }; + + /** + * Creates a plain object from a ScannedData message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.ScannedData + * @static + * @param {meerkat.ScannedData} message ScannedData + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ScannedData.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.serial = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.serial = options.longs === String ? "0" : 0; + object.scannerId = options.bytes === String ? "" : []; + } + if (message.ballot != null && message.hasOwnProperty("ballot")) { + object.ballot = $root.meerkat.ScannedBallot.toObject(message.ballot, options); + if (options.oneofs) + object.data = "ballot"; + } + if (message.error != null && message.hasOwnProperty("error")) { + object.error = $root.meerkat.ScanError.toObject(message.error, options); + if (options.oneofs) + object.data = "error"; + } + if (message.serial != null && message.hasOwnProperty("serial")) + if (typeof message.serial === "number") + object.serial = options.longs === String ? String(message.serial) : message.serial; + else + object.serial = options.longs === String ? $util.Long.prototype.toString.call(message.serial) : options.longs === Number ? new $util.LongBits(message.serial.low >>> 0, message.serial.high >>> 0).toNumber(true) : message.serial; + if (message.scannerId != null && message.hasOwnProperty("scannerId")) + object.scannerId = options.bytes === String ? $util.base64.encode(message.scannerId, 0, message.scannerId.length) : options.bytes === Array ? Array.prototype.slice.call(message.scannerId) : message.scannerId; + return object; + }; + + /** + * Converts this ScannedData to JSON. + * @function toJSON + * @memberof meerkat.ScannedData + * @instance + * @returns {Object.} JSON object + */ + ScannedData.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ScannedData; + })(); + + meerkat.SignedScannedData = (function() { + + /** + * Properties of a SignedScannedData. + * @memberof meerkat + * @interface ISignedScannedData + * @property {meerkat.IScannedData} [data] SignedScannedData data + * @property {meerkat.ISignature} [scannerSig] SignedScannedData scannerSig + */ + + /** + * Constructs a new SignedScannedData. + * @memberof meerkat + * @classdesc Represents a SignedScannedData. + * @constructor + * @param {meerkat.ISignedScannedData=} [properties] Properties to set + */ + function SignedScannedData(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SignedScannedData data. + * @member {(meerkat.IScannedData|null|undefined)}data + * @memberof meerkat.SignedScannedData + * @instance + */ + SignedScannedData.prototype.data = null; + + /** + * SignedScannedData scannerSig. + * @member {(meerkat.ISignature|null|undefined)}scannerSig + * @memberof meerkat.SignedScannedData + * @instance + */ + SignedScannedData.prototype.scannerSig = null; + + /** + * Creates a new SignedScannedData instance using the specified properties. + * @function create + * @memberof meerkat.SignedScannedData + * @static + * @param {meerkat.ISignedScannedData=} [properties] Properties to set + * @returns {meerkat.SignedScannedData} SignedScannedData instance + */ + SignedScannedData.create = function create(properties) { + return new SignedScannedData(properties); + }; + + /** + * Encodes the specified SignedScannedData message. Does not implicitly {@link meerkat.SignedScannedData.verify|verify} messages. + * @function encode + * @memberof meerkat.SignedScannedData + * @static + * @param {meerkat.ISignedScannedData} message SignedScannedData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SignedScannedData.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && message.hasOwnProperty("data")) + $root.meerkat.ScannedData.encode(message.data, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.scannerSig != null && message.hasOwnProperty("scannerSig")) + $root.meerkat.Signature.encode(message.scannerSig, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified SignedScannedData message, length delimited. Does not implicitly {@link meerkat.SignedScannedData.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.SignedScannedData + * @static + * @param {meerkat.ISignedScannedData} message SignedScannedData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SignedScannedData.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SignedScannedData message from the specified reader or buffer. + * @function decode + * @memberof meerkat.SignedScannedData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.SignedScannedData} SignedScannedData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SignedScannedData.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.SignedScannedData(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data = $root.meerkat.ScannedData.decode(reader, reader.uint32()); + break; + case 2: + message.scannerSig = $root.meerkat.Signature.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SignedScannedData message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.SignedScannedData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.SignedScannedData} SignedScannedData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SignedScannedData.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SignedScannedData message. + * @function verify + * @memberof meerkat.SignedScannedData + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SignedScannedData.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.data != null && message.hasOwnProperty("data")) { + var error = $root.meerkat.ScannedData.verify(message.data); + if (error) + return "data." + error; + } + if (message.scannerSig != null && message.hasOwnProperty("scannerSig")) { + error = $root.meerkat.Signature.verify(message.scannerSig); + if (error) + return "scannerSig." + error; + } + return null; + }; + + /** + * Creates a SignedScannedData message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.SignedScannedData + * @static + * @param {Object.} object Plain object + * @returns {meerkat.SignedScannedData} SignedScannedData + */ + SignedScannedData.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.SignedScannedData) + return object; + var message = new $root.meerkat.SignedScannedData(); + if (object.data != null) { + if (typeof object.data !== "object") + throw TypeError(".meerkat.SignedScannedData.data: object expected"); + message.data = $root.meerkat.ScannedData.fromObject(object.data); + } + if (object.scannerSig != null) { + if (typeof object.scannerSig !== "object") + throw TypeError(".meerkat.SignedScannedData.scannerSig: object expected"); + message.scannerSig = $root.meerkat.Signature.fromObject(object.scannerSig); + } + return message; + }; + + /** + * Creates a plain object from a SignedScannedData message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.SignedScannedData + * @static + * @param {meerkat.SignedScannedData} message SignedScannedData + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SignedScannedData.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.data = null; + object.scannerSig = null; + } + if (message.data != null && message.hasOwnProperty("data")) + object.data = $root.meerkat.ScannedData.toObject(message.data, options); + if (message.scannerSig != null && message.hasOwnProperty("scannerSig")) + object.scannerSig = $root.meerkat.Signature.toObject(message.scannerSig, options); + return object; + }; + + /** + * Converts this SignedScannedData to JSON. + * @function toJSON + * @memberof meerkat.SignedScannedData + * @instance + * @returns {Object.} JSON object + */ + SignedScannedData.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return SignedScannedData; + })(); + + /** + * UIElementDataType enum. + * @enum {string} + * @property {number} TEXT=0 TEXT value + * @property {number} IMAGE=1 IMAGE value + * @property {number} VOICE=2 VOICE value + */ + meerkat.UIElementDataType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "TEXT"] = 0; + values[valuesById[1] = "IMAGE"] = 1; + values[valuesById[2] = "VOICE"] = 2; + return values; + })(); + + /** + * QuestionType enum. + * @enum {string} + * @property {number} MULTIPLE_CHOICE=0 MULTIPLE_CHOICE value + * @property {number} MULTIPLE_SELECTION=1 MULTIPLE_SELECTION value + * @property {number} ORDER=2 ORDER value + */ + meerkat.QuestionType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "MULTIPLE_CHOICE"] = 0; + values[valuesById[1] = "MULTIPLE_SELECTION"] = 1; + values[valuesById[2] = "ORDER"] = 2; + return values; + })(); + + meerkat.UIElement = (function() { + + /** + * Properties of a UIElement. + * @memberof meerkat + * @interface IUIElement + * @property {meerkat.UIElementDataType} [type] UIElement type + * @property {Uint8Array} [data] UIElement data + */ + + /** + * Constructs a new UIElement. + * @memberof meerkat + * @classdesc Represents a UIElement. + * @constructor + * @param {meerkat.IUIElement=} [properties] Properties to set + */ + function UIElement(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * UIElement type. + * @member {meerkat.UIElementDataType}type + * @memberof meerkat.UIElement + * @instance + */ + UIElement.prototype.type = 0; + + /** + * UIElement data. + * @member {Uint8Array}data + * @memberof meerkat.UIElement + * @instance + */ + UIElement.prototype.data = $util.newBuffer([]); + + /** + * Creates a new UIElement instance using the specified properties. + * @function create + * @memberof meerkat.UIElement + * @static + * @param {meerkat.IUIElement=} [properties] Properties to set + * @returns {meerkat.UIElement} UIElement instance + */ + UIElement.create = function create(properties) { + return new UIElement(properties); + }; + + /** + * Encodes the specified UIElement message. Does not implicitly {@link meerkat.UIElement.verify|verify} messages. + * @function encode + * @memberof meerkat.UIElement + * @static + * @param {meerkat.IUIElement} message UIElement message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UIElement.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.type != null && message.hasOwnProperty("type")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified UIElement message, length delimited. Does not implicitly {@link meerkat.UIElement.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.UIElement + * @static + * @param {meerkat.IUIElement} message UIElement message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UIElement.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a UIElement message from the specified reader or buffer. + * @function decode + * @memberof meerkat.UIElement + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.UIElement} UIElement + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UIElement.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.UIElement(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.int32(); + break; + case 2: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a UIElement message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.UIElement + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.UIElement} UIElement + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UIElement.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a UIElement message. + * @function verify + * @memberof meerkat.UIElement + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + UIElement.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates a UIElement message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.UIElement + * @static + * @param {Object.} object Plain object + * @returns {meerkat.UIElement} UIElement + */ + UIElement.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.UIElement) + return object; + var message = new $root.meerkat.UIElement(); + switch (object.type) { + case "TEXT": + case 0: + message.type = 0; + break; + case "IMAGE": + case 1: + message.type = 1; + break; + case "VOICE": + case 2: + message.type = 2; + break; + } + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from a UIElement message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.UIElement + * @static + * @param {meerkat.UIElement} message UIElement + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + UIElement.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.type = options.enums === String ? "TEXT" : 0; + object.data = options.bytes === String ? "" : []; + } + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.meerkat.UIElementDataType[message.type] : message.type; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this UIElement to JSON. + * @function toJSON + * @memberof meerkat.UIElement + * @instance + * @returns {Object.} JSON object + */ + UIElement.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return UIElement; + })(); + + meerkat.BallotQuestion = (function() { + + /** + * Properties of a BallotQuestion. + * @memberof meerkat + * @interface IBallotQuestion + * @property {boolean} [isMandatory] BallotQuestion isMandatory + * @property {meerkat.IUIElement} [question] BallotQuestion question + * @property {meerkat.IUIElement} [description] BallotQuestion description + * @property {Array.} [answer] BallotQuestion answer + */ + + /** + * Constructs a new BallotQuestion. + * @memberof meerkat + * @classdesc Represents a BallotQuestion. + * @constructor + * @param {meerkat.IBallotQuestion=} [properties] Properties to set + */ + function BallotQuestion(properties) { + this.answer = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BallotQuestion isMandatory. + * @member {boolean}isMandatory + * @memberof meerkat.BallotQuestion + * @instance + */ + BallotQuestion.prototype.isMandatory = false; + + /** + * BallotQuestion question. + * @member {(meerkat.IUIElement|null|undefined)}question + * @memberof meerkat.BallotQuestion + * @instance + */ + BallotQuestion.prototype.question = null; + + /** + * BallotQuestion description. + * @member {(meerkat.IUIElement|null|undefined)}description + * @memberof meerkat.BallotQuestion + * @instance + */ + BallotQuestion.prototype.description = null; + + /** + * BallotQuestion answer. + * @member {Array.}answer + * @memberof meerkat.BallotQuestion + * @instance + */ + BallotQuestion.prototype.answer = $util.emptyArray; + + /** + * Creates a new BallotQuestion instance using the specified properties. + * @function create + * @memberof meerkat.BallotQuestion + * @static + * @param {meerkat.IBallotQuestion=} [properties] Properties to set + * @returns {meerkat.BallotQuestion} BallotQuestion instance + */ + BallotQuestion.create = function create(properties) { + return new BallotQuestion(properties); + }; + + /** + * Encodes the specified BallotQuestion message. Does not implicitly {@link meerkat.BallotQuestion.verify|verify} messages. + * @function encode + * @memberof meerkat.BallotQuestion + * @static + * @param {meerkat.IBallotQuestion} message BallotQuestion message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BallotQuestion.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.isMandatory != null && message.hasOwnProperty("isMandatory")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.isMandatory); + if (message.question != null && message.hasOwnProperty("question")) + $root.meerkat.UIElement.encode(message.question, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.description != null && message.hasOwnProperty("description")) + $root.meerkat.UIElement.encode(message.description, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.answer != null && message.answer.length) + for (var i = 0; i < message.answer.length; ++i) + $root.meerkat.UIElement.encode(message.answer[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BallotQuestion message, length delimited. Does not implicitly {@link meerkat.BallotQuestion.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BallotQuestion + * @static + * @param {meerkat.IBallotQuestion} message BallotQuestion message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BallotQuestion.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BallotQuestion message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BallotQuestion + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BallotQuestion} BallotQuestion + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BallotQuestion.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BallotQuestion(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.isMandatory = reader.bool(); + break; + case 2: + message.question = $root.meerkat.UIElement.decode(reader, reader.uint32()); + break; + case 3: + message.description = $root.meerkat.UIElement.decode(reader, reader.uint32()); + break; + case 4: + if (!(message.answer && message.answer.length)) + message.answer = []; + message.answer.push($root.meerkat.UIElement.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BallotQuestion message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BallotQuestion + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BallotQuestion} BallotQuestion + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BallotQuestion.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BallotQuestion message. + * @function verify + * @memberof meerkat.BallotQuestion + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BallotQuestion.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.isMandatory != null && message.hasOwnProperty("isMandatory")) + if (typeof message.isMandatory !== "boolean") + return "isMandatory: boolean expected"; + if (message.question != null && message.hasOwnProperty("question")) { + var error = $root.meerkat.UIElement.verify(message.question); + if (error) + return "question." + error; + } + if (message.description != null && message.hasOwnProperty("description")) { + error = $root.meerkat.UIElement.verify(message.description); + if (error) + return "description." + error; + } + if (message.answer != null && message.hasOwnProperty("answer")) { + if (!Array.isArray(message.answer)) + return "answer: array expected"; + for (var i = 0; i < message.answer.length; ++i) { + error = $root.meerkat.UIElement.verify(message.answer[i]); + if (error) + return "answer." + error; + } + } + return null; + }; + + /** + * Creates a BallotQuestion message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BallotQuestion + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BallotQuestion} BallotQuestion + */ + BallotQuestion.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BallotQuestion) + return object; + var message = new $root.meerkat.BallotQuestion(); + if (object.isMandatory != null) + message.isMandatory = Boolean(object.isMandatory); + if (object.question != null) { + if (typeof object.question !== "object") + throw TypeError(".meerkat.BallotQuestion.question: object expected"); + message.question = $root.meerkat.UIElement.fromObject(object.question); + } + if (object.description != null) { + if (typeof object.description !== "object") + throw TypeError(".meerkat.BallotQuestion.description: object expected"); + message.description = $root.meerkat.UIElement.fromObject(object.description); + } + if (object.answer) { + if (!Array.isArray(object.answer)) + throw TypeError(".meerkat.BallotQuestion.answer: array expected"); + message.answer = []; + for (var i = 0; i < object.answer.length; ++i) { + if (typeof object.answer[i] !== "object") + throw TypeError(".meerkat.BallotQuestion.answer: object expected"); + message.answer[i] = $root.meerkat.UIElement.fromObject(object.answer[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a BallotQuestion message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BallotQuestion + * @static + * @param {meerkat.BallotQuestion} message BallotQuestion + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BallotQuestion.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.answer = []; + if (options.defaults) { + object.isMandatory = false; + object.question = null; + object.description = null; + } + if (message.isMandatory != null && message.hasOwnProperty("isMandatory")) + object.isMandatory = message.isMandatory; + if (message.question != null && message.hasOwnProperty("question")) + object.question = $root.meerkat.UIElement.toObject(message.question, options); + if (message.description != null && message.hasOwnProperty("description")) + object.description = $root.meerkat.UIElement.toObject(message.description, options); + if (message.answer && message.answer.length) { + object.answer = []; + for (var j = 0; j < message.answer.length; ++j) + object.answer[j] = $root.meerkat.UIElement.toObject(message.answer[j], options); + } + return object; + }; + + /** + * Converts this BallotQuestion to JSON. + * @function toJSON + * @memberof meerkat.BallotQuestion + * @instance + * @returns {Object.} JSON object + */ + BallotQuestion.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BallotQuestion; + })(); + + meerkat.QuestionCluster = (function() { + + /** + * Properties of a QuestionCluster. + * @memberof meerkat + * @interface IQuestionCluster + * @property {meerkat.IUIElement} [clusterDescription] QuestionCluster clusterDescription + * @property {Array.} [questionIndex] QuestionCluster questionIndex + */ + + /** + * Constructs a new QuestionCluster. + * @memberof meerkat + * @classdesc Represents a QuestionCluster. + * @constructor + * @param {meerkat.IQuestionCluster=} [properties] Properties to set + */ + function QuestionCluster(properties) { + this.questionIndex = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * QuestionCluster clusterDescription. + * @member {(meerkat.IUIElement|null|undefined)}clusterDescription + * @memberof meerkat.QuestionCluster + * @instance + */ + QuestionCluster.prototype.clusterDescription = null; + + /** + * QuestionCluster questionIndex. + * @member {Array.}questionIndex + * @memberof meerkat.QuestionCluster + * @instance + */ + QuestionCluster.prototype.questionIndex = $util.emptyArray; + + /** + * Creates a new QuestionCluster instance using the specified properties. + * @function create + * @memberof meerkat.QuestionCluster + * @static + * @param {meerkat.IQuestionCluster=} [properties] Properties to set + * @returns {meerkat.QuestionCluster} QuestionCluster instance + */ + QuestionCluster.create = function create(properties) { + return new QuestionCluster(properties); + }; + + /** + * Encodes the specified QuestionCluster message. Does not implicitly {@link meerkat.QuestionCluster.verify|verify} messages. + * @function encode + * @memberof meerkat.QuestionCluster + * @static + * @param {meerkat.IQuestionCluster} message QuestionCluster message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + QuestionCluster.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.clusterDescription != null && message.hasOwnProperty("clusterDescription")) + $root.meerkat.UIElement.encode(message.clusterDescription, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.questionIndex != null && message.questionIndex.length) { + writer.uint32(/* id 2, wireType 2 =*/18).fork(); + for (var i = 0; i < message.questionIndex.length; ++i) + writer.int32(message.questionIndex[i]); + writer.ldelim(); + } + return writer; + }; + + /** + * Encodes the specified QuestionCluster message, length delimited. Does not implicitly {@link meerkat.QuestionCluster.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.QuestionCluster + * @static + * @param {meerkat.IQuestionCluster} message QuestionCluster message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + QuestionCluster.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a QuestionCluster message from the specified reader or buffer. + * @function decode + * @memberof meerkat.QuestionCluster + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.QuestionCluster} QuestionCluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + QuestionCluster.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.QuestionCluster(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clusterDescription = $root.meerkat.UIElement.decode(reader, reader.uint32()); + break; + case 2: + if (!(message.questionIndex && message.questionIndex.length)) + message.questionIndex = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.questionIndex.push(reader.int32()); + } else + message.questionIndex.push(reader.int32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a QuestionCluster message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.QuestionCluster + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.QuestionCluster} QuestionCluster + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + QuestionCluster.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a QuestionCluster message. + * @function verify + * @memberof meerkat.QuestionCluster + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + QuestionCluster.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.clusterDescription != null && message.hasOwnProperty("clusterDescription")) { + var error = $root.meerkat.UIElement.verify(message.clusterDescription); + if (error) + return "clusterDescription." + error; + } + if (message.questionIndex != null && message.hasOwnProperty("questionIndex")) { + if (!Array.isArray(message.questionIndex)) + return "questionIndex: array expected"; + for (var i = 0; i < message.questionIndex.length; ++i) + if (!$util.isInteger(message.questionIndex[i])) + return "questionIndex: integer[] expected"; + } + return null; + }; + + /** + * Creates a QuestionCluster message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.QuestionCluster + * @static + * @param {Object.} object Plain object + * @returns {meerkat.QuestionCluster} QuestionCluster + */ + QuestionCluster.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.QuestionCluster) + return object; + var message = new $root.meerkat.QuestionCluster(); + if (object.clusterDescription != null) { + if (typeof object.clusterDescription !== "object") + throw TypeError(".meerkat.QuestionCluster.clusterDescription: object expected"); + message.clusterDescription = $root.meerkat.UIElement.fromObject(object.clusterDescription); + } + if (object.questionIndex) { + if (!Array.isArray(object.questionIndex)) + throw TypeError(".meerkat.QuestionCluster.questionIndex: array expected"); + message.questionIndex = []; + for (var i = 0; i < object.questionIndex.length; ++i) + message.questionIndex[i] = object.questionIndex[i] | 0; + } + return message; + }; + + /** + * Creates a plain object from a QuestionCluster message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.QuestionCluster + * @static + * @param {meerkat.QuestionCluster} message QuestionCluster + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + QuestionCluster.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.questionIndex = []; + if (options.defaults) + object.clusterDescription = null; + if (message.clusterDescription != null && message.hasOwnProperty("clusterDescription")) + object.clusterDescription = $root.meerkat.UIElement.toObject(message.clusterDescription, options); + if (message.questionIndex && message.questionIndex.length) { + object.questionIndex = []; + for (var j = 0; j < message.questionIndex.length; ++j) + object.questionIndex[j] = message.questionIndex[j]; + } + return object; + }; + + /** + * Converts this QuestionCluster to JSON. + * @function toJSON + * @memberof meerkat.QuestionCluster + * @instance + * @returns {Object.} JSON object + */ + QuestionCluster.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return QuestionCluster; + })(); + + meerkat.Channel = (function() { + + /** + * Properties of a Channel. + * @memberof meerkat + * @interface IChannel + * @property {meerkat.IUIElement} [channelDescription] Channel channelDescription + * @property {Array.} [clusterIndex] Channel clusterIndex + */ + + /** + * Constructs a new Channel. + * @memberof meerkat + * @classdesc Represents a Channel. + * @constructor + * @param {meerkat.IChannel=} [properties] Properties to set + */ + function Channel(properties) { + this.clusterIndex = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Channel channelDescription. + * @member {(meerkat.IUIElement|null|undefined)}channelDescription + * @memberof meerkat.Channel + * @instance + */ + Channel.prototype.channelDescription = null; + + /** + * Channel clusterIndex. + * @member {Array.}clusterIndex + * @memberof meerkat.Channel + * @instance + */ + Channel.prototype.clusterIndex = $util.emptyArray; + + /** + * Creates a new Channel instance using the specified properties. + * @function create + * @memberof meerkat.Channel + * @static + * @param {meerkat.IChannel=} [properties] Properties to set + * @returns {meerkat.Channel} Channel instance + */ + Channel.create = function create(properties) { + return new Channel(properties); + }; + + /** + * Encodes the specified Channel message. Does not implicitly {@link meerkat.Channel.verify|verify} messages. + * @function encode + * @memberof meerkat.Channel + * @static + * @param {meerkat.IChannel} message Channel message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Channel.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.channelDescription != null && message.hasOwnProperty("channelDescription")) + $root.meerkat.UIElement.encode(message.channelDescription, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.clusterIndex != null && message.clusterIndex.length) { + writer.uint32(/* id 2, wireType 2 =*/18).fork(); + for (var i = 0; i < message.clusterIndex.length; ++i) + writer.int32(message.clusterIndex[i]); + writer.ldelim(); + } + return writer; + }; + + /** + * Encodes the specified Channel message, length delimited. Does not implicitly {@link meerkat.Channel.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Channel + * @static + * @param {meerkat.IChannel} message Channel message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Channel.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Channel message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Channel + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Channel} Channel + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Channel.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Channel(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.channelDescription = $root.meerkat.UIElement.decode(reader, reader.uint32()); + break; + case 2: + if (!(message.clusterIndex && message.clusterIndex.length)) + message.clusterIndex = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.clusterIndex.push(reader.int32()); + } else + message.clusterIndex.push(reader.int32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Channel message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Channel + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Channel} Channel + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Channel.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Channel message. + * @function verify + * @memberof meerkat.Channel + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Channel.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.channelDescription != null && message.hasOwnProperty("channelDescription")) { + var error = $root.meerkat.UIElement.verify(message.channelDescription); + if (error) + return "channelDescription." + error; + } + if (message.clusterIndex != null && message.hasOwnProperty("clusterIndex")) { + if (!Array.isArray(message.clusterIndex)) + return "clusterIndex: array expected"; + for (var i = 0; i < message.clusterIndex.length; ++i) + if (!$util.isInteger(message.clusterIndex[i])) + return "clusterIndex: integer[] expected"; + } + return null; + }; + + /** + * Creates a Channel message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Channel + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Channel} Channel + */ + Channel.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Channel) + return object; + var message = new $root.meerkat.Channel(); + if (object.channelDescription != null) { + if (typeof object.channelDescription !== "object") + throw TypeError(".meerkat.Channel.channelDescription: object expected"); + message.channelDescription = $root.meerkat.UIElement.fromObject(object.channelDescription); + } + if (object.clusterIndex) { + if (!Array.isArray(object.clusterIndex)) + throw TypeError(".meerkat.Channel.clusterIndex: array expected"); + message.clusterIndex = []; + for (var i = 0; i < object.clusterIndex.length; ++i) + message.clusterIndex[i] = object.clusterIndex[i] | 0; + } + return message; + }; + + /** + * Creates a plain object from a Channel message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Channel + * @static + * @param {meerkat.Channel} message Channel + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Channel.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.clusterIndex = []; + if (options.defaults) + object.channelDescription = null; + if (message.channelDescription != null && message.hasOwnProperty("channelDescription")) + object.channelDescription = $root.meerkat.UIElement.toObject(message.channelDescription, options); + if (message.clusterIndex && message.clusterIndex.length) { + object.clusterIndex = []; + for (var j = 0; j < message.clusterIndex.length; ++j) + object.clusterIndex[j] = message.clusterIndex[j]; + } + return object; + }; + + /** + * Converts this Channel to JSON. + * @function toJSON + * @memberof meerkat.Channel + * @instance + * @returns {Object.} JSON object + */ + Channel.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Channel; + })(); + + meerkat.BallotAnswer = (function() { + + /** + * Properties of a BallotAnswer. + * @memberof meerkat + * @interface IBallotAnswer + * @property {Array.} [answer] BallotAnswer answer + */ + + /** + * Constructs a new BallotAnswer. + * @memberof meerkat + * @classdesc Represents a BallotAnswer. + * @constructor + * @param {meerkat.IBallotAnswer=} [properties] Properties to set + */ + function BallotAnswer(properties) { + this.answer = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BallotAnswer answer. + * @member {Array.}answer + * @memberof meerkat.BallotAnswer + * @instance + */ + BallotAnswer.prototype.answer = $util.emptyArray; + + /** + * Creates a new BallotAnswer instance using the specified properties. + * @function create + * @memberof meerkat.BallotAnswer + * @static + * @param {meerkat.IBallotAnswer=} [properties] Properties to set + * @returns {meerkat.BallotAnswer} BallotAnswer instance + */ + BallotAnswer.create = function create(properties) { + return new BallotAnswer(properties); + }; + + /** + * Encodes the specified BallotAnswer message. Does not implicitly {@link meerkat.BallotAnswer.verify|verify} messages. + * @function encode + * @memberof meerkat.BallotAnswer + * @static + * @param {meerkat.IBallotAnswer} message BallotAnswer message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BallotAnswer.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.answer != null && message.answer.length) { + writer.uint32(/* id 1, wireType 2 =*/10).fork(); + for (var i = 0; i < message.answer.length; ++i) + writer.sint64(message.answer[i]); + writer.ldelim(); + } + return writer; + }; + + /** + * Encodes the specified BallotAnswer message, length delimited. Does not implicitly {@link meerkat.BallotAnswer.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BallotAnswer + * @static + * @param {meerkat.IBallotAnswer} message BallotAnswer message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BallotAnswer.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BallotAnswer message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BallotAnswer + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BallotAnswer} BallotAnswer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BallotAnswer.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BallotAnswer(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.answer && message.answer.length)) + message.answer = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.answer.push(reader.sint64()); + } else + message.answer.push(reader.sint64()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BallotAnswer message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BallotAnswer + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BallotAnswer} BallotAnswer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BallotAnswer.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BallotAnswer message. + * @function verify + * @memberof meerkat.BallotAnswer + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BallotAnswer.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.answer != null && message.hasOwnProperty("answer")) { + if (!Array.isArray(message.answer)) + return "answer: array expected"; + for (var i = 0; i < message.answer.length; ++i) + if (!$util.isInteger(message.answer[i]) && !(message.answer[i] && $util.isInteger(message.answer[i].low) && $util.isInteger(message.answer[i].high))) + return "answer: integer|Long[] expected"; + } + return null; + }; + + /** + * Creates a BallotAnswer message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BallotAnswer + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BallotAnswer} BallotAnswer + */ + BallotAnswer.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BallotAnswer) + return object; + var message = new $root.meerkat.BallotAnswer(); + if (object.answer) { + if (!Array.isArray(object.answer)) + throw TypeError(".meerkat.BallotAnswer.answer: array expected"); + message.answer = []; + for (var i = 0; i < object.answer.length; ++i) + if ($util.Long) + (message.answer[i] = $util.Long.fromValue(object.answer[i])).unsigned = false; + else if (typeof object.answer[i] === "string") + message.answer[i] = parseInt(object.answer[i], 10); + else if (typeof object.answer[i] === "number") + message.answer[i] = object.answer[i]; + else if (typeof object.answer[i] === "object") + message.answer[i] = new $util.LongBits(object.answer[i].low >>> 0, object.answer[i].high >>> 0).toNumber(); + } + return message; + }; + + /** + * Creates a plain object from a BallotAnswer message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BallotAnswer + * @static + * @param {meerkat.BallotAnswer} message BallotAnswer + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BallotAnswer.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.answer = []; + if (message.answer && message.answer.length) { + object.answer = []; + for (var j = 0; j < message.answer.length; ++j) + if (typeof message.answer[j] === "number") + object.answer[j] = options.longs === String ? String(message.answer[j]) : message.answer[j]; + else + object.answer[j] = options.longs === String ? $util.Long.prototype.toString.call(message.answer[j]) : options.longs === Number ? new $util.LongBits(message.answer[j].low >>> 0, message.answer[j].high >>> 0).toNumber() : message.answer[j]; + } + return object; + }; + + /** + * Converts this BallotAnswer to JSON. + * @function toJSON + * @memberof meerkat.BallotAnswer + * @instance + * @returns {Object.} JSON object + */ + BallotAnswer.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BallotAnswer; + })(); + + meerkat.PlaintextBallot = (function() { + + /** + * Properties of a PlaintextBallot. + * @memberof meerkat + * @interface IPlaintextBallot + * @property {number|Long} [serialNumber] PlaintextBallot serialNumber + * @property {Uint8Array} [channelIdentifier] PlaintextBallot channelIdentifier + * @property {Array.} [answers] PlaintextBallot answers + */ + + /** + * Constructs a new PlaintextBallot. + * @memberof meerkat + * @classdesc Represents a PlaintextBallot. + * @constructor + * @param {meerkat.IPlaintextBallot=} [properties] Properties to set + */ + function PlaintextBallot(properties) { + this.answers = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PlaintextBallot serialNumber. + * @member {number|Long}serialNumber + * @memberof meerkat.PlaintextBallot + * @instance + */ + PlaintextBallot.prototype.serialNumber = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * PlaintextBallot channelIdentifier. + * @member {Uint8Array}channelIdentifier + * @memberof meerkat.PlaintextBallot + * @instance + */ + PlaintextBallot.prototype.channelIdentifier = $util.newBuffer([]); + + /** + * PlaintextBallot answers. + * @member {Array.}answers + * @memberof meerkat.PlaintextBallot + * @instance + */ + PlaintextBallot.prototype.answers = $util.emptyArray; + + /** + * Creates a new PlaintextBallot instance using the specified properties. + * @function create + * @memberof meerkat.PlaintextBallot + * @static + * @param {meerkat.IPlaintextBallot=} [properties] Properties to set + * @returns {meerkat.PlaintextBallot} PlaintextBallot instance + */ + PlaintextBallot.create = function create(properties) { + return new PlaintextBallot(properties); + }; + + /** + * Encodes the specified PlaintextBallot message. Does not implicitly {@link meerkat.PlaintextBallot.verify|verify} messages. + * @function encode + * @memberof meerkat.PlaintextBallot + * @static + * @param {meerkat.IPlaintextBallot} message PlaintextBallot message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlaintextBallot.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.serialNumber != null && message.hasOwnProperty("serialNumber")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.serialNumber); + if (message.channelIdentifier != null && message.hasOwnProperty("channelIdentifier")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.channelIdentifier); + if (message.answers != null && message.answers.length) + for (var i = 0; i < message.answers.length; ++i) + $root.meerkat.BallotAnswer.encode(message.answers[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PlaintextBallot message, length delimited. Does not implicitly {@link meerkat.PlaintextBallot.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.PlaintextBallot + * @static + * @param {meerkat.IPlaintextBallot} message PlaintextBallot message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PlaintextBallot.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PlaintextBallot message from the specified reader or buffer. + * @function decode + * @memberof meerkat.PlaintextBallot + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.PlaintextBallot} PlaintextBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlaintextBallot.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.PlaintextBallot(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.serialNumber = reader.uint64(); + break; + case 2: + message.channelIdentifier = reader.bytes(); + break; + case 3: + if (!(message.answers && message.answers.length)) + message.answers = []; + message.answers.push($root.meerkat.BallotAnswer.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PlaintextBallot message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.PlaintextBallot + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.PlaintextBallot} PlaintextBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PlaintextBallot.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PlaintextBallot message. + * @function verify + * @memberof meerkat.PlaintextBallot + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PlaintextBallot.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.serialNumber != null && message.hasOwnProperty("serialNumber")) + if (!$util.isInteger(message.serialNumber) && !(message.serialNumber && $util.isInteger(message.serialNumber.low) && $util.isInteger(message.serialNumber.high))) + return "serialNumber: integer|Long expected"; + if (message.channelIdentifier != null && message.hasOwnProperty("channelIdentifier")) + if (!(message.channelIdentifier && typeof message.channelIdentifier.length === "number" || $util.isString(message.channelIdentifier))) + return "channelIdentifier: buffer expected"; + if (message.answers != null && message.hasOwnProperty("answers")) { + if (!Array.isArray(message.answers)) + return "answers: array expected"; + for (var i = 0; i < message.answers.length; ++i) { + var error = $root.meerkat.BallotAnswer.verify(message.answers[i]); + if (error) + return "answers." + error; + } + } + return null; + }; + + /** + * Creates a PlaintextBallot message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.PlaintextBallot + * @static + * @param {Object.} object Plain object + * @returns {meerkat.PlaintextBallot} PlaintextBallot + */ + PlaintextBallot.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.PlaintextBallot) + return object; + var message = new $root.meerkat.PlaintextBallot(); + if (object.serialNumber != null) + if ($util.Long) + (message.serialNumber = $util.Long.fromValue(object.serialNumber)).unsigned = true; + else if (typeof object.serialNumber === "string") + message.serialNumber = parseInt(object.serialNumber, 10); + else if (typeof object.serialNumber === "number") + message.serialNumber = object.serialNumber; + else if (typeof object.serialNumber === "object") + message.serialNumber = new $util.LongBits(object.serialNumber.low >>> 0, object.serialNumber.high >>> 0).toNumber(true); + if (object.channelIdentifier != null) + if (typeof object.channelIdentifier === "string") + $util.base64.decode(object.channelIdentifier, message.channelIdentifier = $util.newBuffer($util.base64.length(object.channelIdentifier)), 0); + else if (object.channelIdentifier.length) + message.channelIdentifier = object.channelIdentifier; + if (object.answers) { + if (!Array.isArray(object.answers)) + throw TypeError(".meerkat.PlaintextBallot.answers: array expected"); + message.answers = []; + for (var i = 0; i < object.answers.length; ++i) { + if (typeof object.answers[i] !== "object") + throw TypeError(".meerkat.PlaintextBallot.answers: object expected"); + message.answers[i] = $root.meerkat.BallotAnswer.fromObject(object.answers[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a PlaintextBallot message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.PlaintextBallot + * @static + * @param {meerkat.PlaintextBallot} message PlaintextBallot + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PlaintextBallot.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.answers = []; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.serialNumber = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.serialNumber = options.longs === String ? "0" : 0; + object.channelIdentifier = options.bytes === String ? "" : []; + } + if (message.serialNumber != null && message.hasOwnProperty("serialNumber")) + if (typeof message.serialNumber === "number") + object.serialNumber = options.longs === String ? String(message.serialNumber) : message.serialNumber; + else + object.serialNumber = options.longs === String ? $util.Long.prototype.toString.call(message.serialNumber) : options.longs === Number ? new $util.LongBits(message.serialNumber.low >>> 0, message.serialNumber.high >>> 0).toNumber(true) : message.serialNumber; + if (message.channelIdentifier != null && message.hasOwnProperty("channelIdentifier")) + object.channelIdentifier = options.bytes === String ? $util.base64.encode(message.channelIdentifier, 0, message.channelIdentifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.channelIdentifier) : message.channelIdentifier; + if (message.answers && message.answers.length) { + object.answers = []; + for (var j = 0; j < message.answers.length; ++j) + object.answers[j] = $root.meerkat.BallotAnswer.toObject(message.answers[j], options); + } + return object; + }; + + /** + * Converts this PlaintextBallot to JSON. + * @function toJSON + * @memberof meerkat.PlaintextBallot + * @instance + * @returns {Object.} JSON object + */ + PlaintextBallot.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return PlaintextBallot; + })(); + + meerkat.EncryptedBallot = (function() { + + /** + * Properties of an EncryptedBallot. + * @memberof meerkat + * @interface IEncryptedBallot + * @property {number|Long} [serialNumber] EncryptedBallot serialNumber + * @property {meerkat.IRerandomizableEncryptedMessage} [data] EncryptedBallot data + */ + + /** + * Constructs a new EncryptedBallot. + * @memberof meerkat + * @classdesc Represents an EncryptedBallot. + * @constructor + * @param {meerkat.IEncryptedBallot=} [properties] Properties to set + */ + function EncryptedBallot(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * EncryptedBallot serialNumber. + * @member {number|Long}serialNumber + * @memberof meerkat.EncryptedBallot + * @instance + */ + EncryptedBallot.prototype.serialNumber = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * EncryptedBallot data. + * @member {(meerkat.IRerandomizableEncryptedMessage|null|undefined)}data + * @memberof meerkat.EncryptedBallot + * @instance + */ + EncryptedBallot.prototype.data = null; + + /** + * Creates a new EncryptedBallot instance using the specified properties. + * @function create + * @memberof meerkat.EncryptedBallot + * @static + * @param {meerkat.IEncryptedBallot=} [properties] Properties to set + * @returns {meerkat.EncryptedBallot} EncryptedBallot instance + */ + EncryptedBallot.create = function create(properties) { + return new EncryptedBallot(properties); + }; + + /** + * Encodes the specified EncryptedBallot message. Does not implicitly {@link meerkat.EncryptedBallot.verify|verify} messages. + * @function encode + * @memberof meerkat.EncryptedBallot + * @static + * @param {meerkat.IEncryptedBallot} message EncryptedBallot message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EncryptedBallot.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.serialNumber != null && message.hasOwnProperty("serialNumber")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.serialNumber); + if (message.data != null && message.hasOwnProperty("data")) + $root.meerkat.RerandomizableEncryptedMessage.encode(message.data, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified EncryptedBallot message, length delimited. Does not implicitly {@link meerkat.EncryptedBallot.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.EncryptedBallot + * @static + * @param {meerkat.IEncryptedBallot} message EncryptedBallot message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EncryptedBallot.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EncryptedBallot message from the specified reader or buffer. + * @function decode + * @memberof meerkat.EncryptedBallot + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.EncryptedBallot} EncryptedBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EncryptedBallot.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.EncryptedBallot(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.serialNumber = reader.uint64(); + break; + case 2: + message.data = $root.meerkat.RerandomizableEncryptedMessage.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EncryptedBallot message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.EncryptedBallot + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.EncryptedBallot} EncryptedBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EncryptedBallot.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EncryptedBallot message. + * @function verify + * @memberof meerkat.EncryptedBallot + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EncryptedBallot.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.serialNumber != null && message.hasOwnProperty("serialNumber")) + if (!$util.isInteger(message.serialNumber) && !(message.serialNumber && $util.isInteger(message.serialNumber.low) && $util.isInteger(message.serialNumber.high))) + return "serialNumber: integer|Long expected"; + if (message.data != null && message.hasOwnProperty("data")) { + var error = $root.meerkat.RerandomizableEncryptedMessage.verify(message.data); + if (error) + return "data." + error; + } + return null; + }; + + /** + * Creates an EncryptedBallot message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.EncryptedBallot + * @static + * @param {Object.} object Plain object + * @returns {meerkat.EncryptedBallot} EncryptedBallot + */ + EncryptedBallot.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.EncryptedBallot) + return object; + var message = new $root.meerkat.EncryptedBallot(); + if (object.serialNumber != null) + if ($util.Long) + (message.serialNumber = $util.Long.fromValue(object.serialNumber)).unsigned = true; + else if (typeof object.serialNumber === "string") + message.serialNumber = parseInt(object.serialNumber, 10); + else if (typeof object.serialNumber === "number") + message.serialNumber = object.serialNumber; + else if (typeof object.serialNumber === "object") + message.serialNumber = new $util.LongBits(object.serialNumber.low >>> 0, object.serialNumber.high >>> 0).toNumber(true); + if (object.data != null) { + if (typeof object.data !== "object") + throw TypeError(".meerkat.EncryptedBallot.data: object expected"); + message.data = $root.meerkat.RerandomizableEncryptedMessage.fromObject(object.data); + } + return message; + }; + + /** + * Creates a plain object from an EncryptedBallot message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.EncryptedBallot + * @static + * @param {meerkat.EncryptedBallot} message EncryptedBallot + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EncryptedBallot.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.serialNumber = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.serialNumber = options.longs === String ? "0" : 0; + object.data = null; + } + if (message.serialNumber != null && message.hasOwnProperty("serialNumber")) + if (typeof message.serialNumber === "number") + object.serialNumber = options.longs === String ? String(message.serialNumber) : message.serialNumber; + else + object.serialNumber = options.longs === String ? $util.Long.prototype.toString.call(message.serialNumber) : options.longs === Number ? new $util.LongBits(message.serialNumber.low >>> 0, message.serialNumber.high >>> 0).toNumber(true) : message.serialNumber; + if (message.data != null && message.hasOwnProperty("data")) + object.data = $root.meerkat.RerandomizableEncryptedMessage.toObject(message.data, options); + return object; + }; + + /** + * Converts this EncryptedBallot to JSON. + * @function toJSON + * @memberof meerkat.EncryptedBallot + * @instance + * @returns {Object.} JSON object + */ + EncryptedBallot.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return EncryptedBallot; + })(); + + meerkat.SignedEncryptedBallot = (function() { + + /** + * Properties of a SignedEncryptedBallot. + * @memberof meerkat + * @interface ISignedEncryptedBallot + * @property {meerkat.IEncryptedBallot} [encryptedBallot] SignedEncryptedBallot encryptedBallot + * @property {meerkat.ISignature} [signature] SignedEncryptedBallot signature + */ + + /** + * Constructs a new SignedEncryptedBallot. + * @memberof meerkat + * @classdesc Represents a SignedEncryptedBallot. + * @constructor + * @param {meerkat.ISignedEncryptedBallot=} [properties] Properties to set + */ + function SignedEncryptedBallot(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SignedEncryptedBallot encryptedBallot. + * @member {(meerkat.IEncryptedBallot|null|undefined)}encryptedBallot + * @memberof meerkat.SignedEncryptedBallot + * @instance + */ + SignedEncryptedBallot.prototype.encryptedBallot = null; + + /** + * SignedEncryptedBallot signature. + * @member {(meerkat.ISignature|null|undefined)}signature + * @memberof meerkat.SignedEncryptedBallot + * @instance + */ + SignedEncryptedBallot.prototype.signature = null; + + /** + * Creates a new SignedEncryptedBallot instance using the specified properties. + * @function create + * @memberof meerkat.SignedEncryptedBallot + * @static + * @param {meerkat.ISignedEncryptedBallot=} [properties] Properties to set + * @returns {meerkat.SignedEncryptedBallot} SignedEncryptedBallot instance + */ + SignedEncryptedBallot.create = function create(properties) { + return new SignedEncryptedBallot(properties); + }; + + /** + * Encodes the specified SignedEncryptedBallot message. Does not implicitly {@link meerkat.SignedEncryptedBallot.verify|verify} messages. + * @function encode + * @memberof meerkat.SignedEncryptedBallot + * @static + * @param {meerkat.ISignedEncryptedBallot} message SignedEncryptedBallot message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SignedEncryptedBallot.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.encryptedBallot != null && message.hasOwnProperty("encryptedBallot")) + $root.meerkat.EncryptedBallot.encode(message.encryptedBallot, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.signature != null && message.hasOwnProperty("signature")) + $root.meerkat.Signature.encode(message.signature, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified SignedEncryptedBallot message, length delimited. Does not implicitly {@link meerkat.SignedEncryptedBallot.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.SignedEncryptedBallot + * @static + * @param {meerkat.ISignedEncryptedBallot} message SignedEncryptedBallot message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SignedEncryptedBallot.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SignedEncryptedBallot message from the specified reader or buffer. + * @function decode + * @memberof meerkat.SignedEncryptedBallot + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.SignedEncryptedBallot} SignedEncryptedBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SignedEncryptedBallot.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.SignedEncryptedBallot(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.encryptedBallot = $root.meerkat.EncryptedBallot.decode(reader, reader.uint32()); + break; + case 2: + message.signature = $root.meerkat.Signature.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SignedEncryptedBallot message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.SignedEncryptedBallot + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.SignedEncryptedBallot} SignedEncryptedBallot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SignedEncryptedBallot.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SignedEncryptedBallot message. + * @function verify + * @memberof meerkat.SignedEncryptedBallot + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SignedEncryptedBallot.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.encryptedBallot != null && message.hasOwnProperty("encryptedBallot")) { + var error = $root.meerkat.EncryptedBallot.verify(message.encryptedBallot); + if (error) + return "encryptedBallot." + error; + } + if (message.signature != null && message.hasOwnProperty("signature")) { + error = $root.meerkat.Signature.verify(message.signature); + if (error) + return "signature." + error; + } + return null; + }; + + /** + * Creates a SignedEncryptedBallot message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.SignedEncryptedBallot + * @static + * @param {Object.} object Plain object + * @returns {meerkat.SignedEncryptedBallot} SignedEncryptedBallot + */ + SignedEncryptedBallot.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.SignedEncryptedBallot) + return object; + var message = new $root.meerkat.SignedEncryptedBallot(); + if (object.encryptedBallot != null) { + if (typeof object.encryptedBallot !== "object") + throw TypeError(".meerkat.SignedEncryptedBallot.encryptedBallot: object expected"); + message.encryptedBallot = $root.meerkat.EncryptedBallot.fromObject(object.encryptedBallot); + } + if (object.signature != null) { + if (typeof object.signature !== "object") + throw TypeError(".meerkat.SignedEncryptedBallot.signature: object expected"); + message.signature = $root.meerkat.Signature.fromObject(object.signature); + } + return message; + }; + + /** + * Creates a plain object from a SignedEncryptedBallot message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.SignedEncryptedBallot + * @static + * @param {meerkat.SignedEncryptedBallot} message SignedEncryptedBallot + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SignedEncryptedBallot.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.encryptedBallot = null; + object.signature = null; + } + if (message.encryptedBallot != null && message.hasOwnProperty("encryptedBallot")) + object.encryptedBallot = $root.meerkat.EncryptedBallot.toObject(message.encryptedBallot, options); + if (message.signature != null && message.hasOwnProperty("signature")) + object.signature = $root.meerkat.Signature.toObject(message.signature, options); + return object; + }; + + /** + * Converts this SignedEncryptedBallot to JSON. + * @function toJSON + * @memberof meerkat.SignedEncryptedBallot + * @instance + * @returns {Object.} JSON object + */ + SignedEncryptedBallot.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return SignedEncryptedBallot; + })(); + + meerkat.BallotSecrets = (function() { + + /** + * Properties of a BallotSecrets. + * @memberof meerkat + * @interface IBallotSecrets + * @property {meerkat.IPlaintextBallot} [plaintextBallot] BallotSecrets plaintextBallot + * @property {meerkat.IEncryptionRandomness} [encryptionRandomness] BallotSecrets encryptionRandomness + * @property {meerkat.IRandomnessGenerationProof} [proof] BallotSecrets proof + */ + + /** + * Constructs a new BallotSecrets. + * @memberof meerkat + * @classdesc Represents a BallotSecrets. + * @constructor + * @param {meerkat.IBallotSecrets=} [properties] Properties to set + */ + function BallotSecrets(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BallotSecrets plaintextBallot. + * @member {(meerkat.IPlaintextBallot|null|undefined)}plaintextBallot + * @memberof meerkat.BallotSecrets + * @instance + */ + BallotSecrets.prototype.plaintextBallot = null; + + /** + * BallotSecrets encryptionRandomness. + * @member {(meerkat.IEncryptionRandomness|null|undefined)}encryptionRandomness + * @memberof meerkat.BallotSecrets + * @instance + */ + BallotSecrets.prototype.encryptionRandomness = null; + + /** + * BallotSecrets proof. + * @member {(meerkat.IRandomnessGenerationProof|null|undefined)}proof + * @memberof meerkat.BallotSecrets + * @instance + */ + BallotSecrets.prototype.proof = null; + + /** + * Creates a new BallotSecrets instance using the specified properties. + * @function create + * @memberof meerkat.BallotSecrets + * @static + * @param {meerkat.IBallotSecrets=} [properties] Properties to set + * @returns {meerkat.BallotSecrets} BallotSecrets instance + */ + BallotSecrets.create = function create(properties) { + return new BallotSecrets(properties); + }; + + /** + * Encodes the specified BallotSecrets message. Does not implicitly {@link meerkat.BallotSecrets.verify|verify} messages. + * @function encode + * @memberof meerkat.BallotSecrets + * @static + * @param {meerkat.IBallotSecrets} message BallotSecrets message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BallotSecrets.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.plaintextBallot != null && message.hasOwnProperty("plaintextBallot")) + $root.meerkat.PlaintextBallot.encode(message.plaintextBallot, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.encryptionRandomness != null && message.hasOwnProperty("encryptionRandomness")) + $root.meerkat.EncryptionRandomness.encode(message.encryptionRandomness, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.proof != null && message.hasOwnProperty("proof")) + $root.meerkat.RandomnessGenerationProof.encode(message.proof, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BallotSecrets message, length delimited. Does not implicitly {@link meerkat.BallotSecrets.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BallotSecrets + * @static + * @param {meerkat.IBallotSecrets} message BallotSecrets message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BallotSecrets.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BallotSecrets message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BallotSecrets + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BallotSecrets} BallotSecrets + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BallotSecrets.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BallotSecrets(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.plaintextBallot = $root.meerkat.PlaintextBallot.decode(reader, reader.uint32()); + break; + case 2: + message.encryptionRandomness = $root.meerkat.EncryptionRandomness.decode(reader, reader.uint32()); + break; + case 3: + message.proof = $root.meerkat.RandomnessGenerationProof.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BallotSecrets message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BallotSecrets + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BallotSecrets} BallotSecrets + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BallotSecrets.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BallotSecrets message. + * @function verify + * @memberof meerkat.BallotSecrets + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BallotSecrets.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.plaintextBallot != null && message.hasOwnProperty("plaintextBallot")) { + var error = $root.meerkat.PlaintextBallot.verify(message.plaintextBallot); + if (error) + return "plaintextBallot." + error; + } + if (message.encryptionRandomness != null && message.hasOwnProperty("encryptionRandomness")) { + error = $root.meerkat.EncryptionRandomness.verify(message.encryptionRandomness); + if (error) + return "encryptionRandomness." + error; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + error = $root.meerkat.RandomnessGenerationProof.verify(message.proof); + if (error) + return "proof." + error; + } + return null; + }; + + /** + * Creates a BallotSecrets message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BallotSecrets + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BallotSecrets} BallotSecrets + */ + BallotSecrets.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BallotSecrets) + return object; + var message = new $root.meerkat.BallotSecrets(); + if (object.plaintextBallot != null) { + if (typeof object.plaintextBallot !== "object") + throw TypeError(".meerkat.BallotSecrets.plaintextBallot: object expected"); + message.plaintextBallot = $root.meerkat.PlaintextBallot.fromObject(object.plaintextBallot); + } + if (object.encryptionRandomness != null) { + if (typeof object.encryptionRandomness !== "object") + throw TypeError(".meerkat.BallotSecrets.encryptionRandomness: object expected"); + message.encryptionRandomness = $root.meerkat.EncryptionRandomness.fromObject(object.encryptionRandomness); + } + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".meerkat.BallotSecrets.proof: object expected"); + message.proof = $root.meerkat.RandomnessGenerationProof.fromObject(object.proof); + } + return message; + }; + + /** + * Creates a plain object from a BallotSecrets message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BallotSecrets + * @static + * @param {meerkat.BallotSecrets} message BallotSecrets + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BallotSecrets.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.plaintextBallot = null; + object.encryptionRandomness = null; + object.proof = null; + } + if (message.plaintextBallot != null && message.hasOwnProperty("plaintextBallot")) + object.plaintextBallot = $root.meerkat.PlaintextBallot.toObject(message.plaintextBallot, options); + if (message.encryptionRandomness != null && message.hasOwnProperty("encryptionRandomness")) + object.encryptionRandomness = $root.meerkat.EncryptionRandomness.toObject(message.encryptionRandomness, options); + if (message.proof != null && message.hasOwnProperty("proof")) + object.proof = $root.meerkat.RandomnessGenerationProof.toObject(message.proof, options); + return object; + }; + + /** + * Converts this BallotSecrets to JSON. + * @function toJSON + * @memberof meerkat.BallotSecrets + * @instance + * @returns {Object.} JSON object + */ + BallotSecrets.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BallotSecrets; + })(); + + meerkat.BoothParams = (function() { + + /** + * Properties of a BoothParams. + * @memberof meerkat + * @interface IBoothParams + * @property {Array.} [pscVerificationKeys] BoothParams pscVerificationKeys + */ + + /** + * Constructs a new BoothParams. + * @memberof meerkat + * @classdesc Represents a BoothParams. + * @constructor + * @param {meerkat.IBoothParams=} [properties] Properties to set + */ + function BoothParams(properties) { + this.pscVerificationKeys = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BoothParams pscVerificationKeys. + * @member {Array.}pscVerificationKeys + * @memberof meerkat.BoothParams + * @instance + */ + BoothParams.prototype.pscVerificationKeys = $util.emptyArray; + + /** + * Creates a new BoothParams instance using the specified properties. + * @function create + * @memberof meerkat.BoothParams + * @static + * @param {meerkat.IBoothParams=} [properties] Properties to set + * @returns {meerkat.BoothParams} BoothParams instance + */ + BoothParams.create = function create(properties) { + return new BoothParams(properties); + }; + + /** + * Encodes the specified BoothParams message. Does not implicitly {@link meerkat.BoothParams.verify|verify} messages. + * @function encode + * @memberof meerkat.BoothParams + * @static + * @param {meerkat.IBoothParams} message BoothParams message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BoothParams.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.pscVerificationKeys != null && message.pscVerificationKeys.length) + for (var i = 0; i < message.pscVerificationKeys.length; ++i) + $root.meerkat.SignatureVerificationKey.encode(message.pscVerificationKeys[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BoothParams message, length delimited. Does not implicitly {@link meerkat.BoothParams.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BoothParams + * @static + * @param {meerkat.IBoothParams} message BoothParams message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BoothParams.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BoothParams message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BoothParams + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BoothParams} BoothParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BoothParams.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BoothParams(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.pscVerificationKeys && message.pscVerificationKeys.length)) + message.pscVerificationKeys = []; + message.pscVerificationKeys.push($root.meerkat.SignatureVerificationKey.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BoothParams message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BoothParams + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BoothParams} BoothParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BoothParams.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BoothParams message. + * @function verify + * @memberof meerkat.BoothParams + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BoothParams.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.pscVerificationKeys != null && message.hasOwnProperty("pscVerificationKeys")) { + if (!Array.isArray(message.pscVerificationKeys)) + return "pscVerificationKeys: array expected"; + for (var i = 0; i < message.pscVerificationKeys.length; ++i) { + var error = $root.meerkat.SignatureVerificationKey.verify(message.pscVerificationKeys[i]); + if (error) + return "pscVerificationKeys." + error; + } + } + return null; + }; + + /** + * Creates a BoothParams message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BoothParams + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BoothParams} BoothParams + */ + BoothParams.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BoothParams) + return object; + var message = new $root.meerkat.BoothParams(); + if (object.pscVerificationKeys) { + if (!Array.isArray(object.pscVerificationKeys)) + throw TypeError(".meerkat.BoothParams.pscVerificationKeys: array expected"); + message.pscVerificationKeys = []; + for (var i = 0; i < object.pscVerificationKeys.length; ++i) { + if (typeof object.pscVerificationKeys[i] !== "object") + throw TypeError(".meerkat.BoothParams.pscVerificationKeys: object expected"); + message.pscVerificationKeys[i] = $root.meerkat.SignatureVerificationKey.fromObject(object.pscVerificationKeys[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a BoothParams message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BoothParams + * @static + * @param {meerkat.BoothParams} message BoothParams + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BoothParams.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.pscVerificationKeys = []; + if (message.pscVerificationKeys && message.pscVerificationKeys.length) { + object.pscVerificationKeys = []; + for (var j = 0; j < message.pscVerificationKeys.length; ++j) + object.pscVerificationKeys[j] = $root.meerkat.SignatureVerificationKey.toObject(message.pscVerificationKeys[j], options); + } + return object; + }; + + /** + * Converts this BoothParams to JSON. + * @function toJSON + * @memberof meerkat.BoothParams + * @instance + * @returns {Object.} JSON object + */ + BoothParams.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BoothParams; + })(); + + meerkat.BoothSystemMessages = (function() { + + /** + * Properties of a BoothSystemMessages. + * @memberof meerkat + * @interface IBoothSystemMessages + * @property {Object.} [systemMessage] BoothSystemMessages systemMessage + */ + + /** + * Constructs a new BoothSystemMessages. + * @memberof meerkat + * @classdesc Represents a BoothSystemMessages. + * @constructor + * @param {meerkat.IBoothSystemMessages=} [properties] Properties to set + */ + function BoothSystemMessages(properties) { + this.systemMessage = {}; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BoothSystemMessages systemMessage. + * @member {Object.}systemMessage + * @memberof meerkat.BoothSystemMessages + * @instance + */ + BoothSystemMessages.prototype.systemMessage = $util.emptyObject; + + /** + * Creates a new BoothSystemMessages instance using the specified properties. + * @function create + * @memberof meerkat.BoothSystemMessages + * @static + * @param {meerkat.IBoothSystemMessages=} [properties] Properties to set + * @returns {meerkat.BoothSystemMessages} BoothSystemMessages instance + */ + BoothSystemMessages.create = function create(properties) { + return new BoothSystemMessages(properties); + }; + + /** + * Encodes the specified BoothSystemMessages message. Does not implicitly {@link meerkat.BoothSystemMessages.verify|verify} messages. + * @function encode + * @memberof meerkat.BoothSystemMessages + * @static + * @param {meerkat.IBoothSystemMessages} message BoothSystemMessages message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BoothSystemMessages.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.systemMessage != null && message.hasOwnProperty("systemMessage")) + for (var keys = Object.keys(message.systemMessage), i = 0; i < keys.length; ++i) { + writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); + $root.meerkat.UIElement.encode(message.systemMessage[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); + } + return writer; + }; + + /** + * Encodes the specified BoothSystemMessages message, length delimited. Does not implicitly {@link meerkat.BoothSystemMessages.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BoothSystemMessages + * @static + * @param {meerkat.IBoothSystemMessages} message BoothSystemMessages message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BoothSystemMessages.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BoothSystemMessages message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BoothSystemMessages + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BoothSystemMessages} BoothSystemMessages + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BoothSystemMessages.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BoothSystemMessages(), key; + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + reader.skip().pos++; + if (message.systemMessage === $util.emptyObject) + message.systemMessage = {}; + key = reader.string(); + reader.pos++; + message.systemMessage[key] = $root.meerkat.UIElement.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BoothSystemMessages message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BoothSystemMessages + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BoothSystemMessages} BoothSystemMessages + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BoothSystemMessages.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BoothSystemMessages message. + * @function verify + * @memberof meerkat.BoothSystemMessages + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BoothSystemMessages.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.systemMessage != null && message.hasOwnProperty("systemMessage")) { + if (!$util.isObject(message.systemMessage)) + return "systemMessage: object expected"; + var key = Object.keys(message.systemMessage); + for (var i = 0; i < key.length; ++i) { + var error = $root.meerkat.UIElement.verify(message.systemMessage[key[i]]); + if (error) + return "systemMessage." + error; + } + } + return null; + }; + + /** + * Creates a BoothSystemMessages message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BoothSystemMessages + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BoothSystemMessages} BoothSystemMessages + */ + BoothSystemMessages.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BoothSystemMessages) + return object; + var message = new $root.meerkat.BoothSystemMessages(); + if (object.systemMessage) { + if (typeof object.systemMessage !== "object") + throw TypeError(".meerkat.BoothSystemMessages.systemMessage: object expected"); + message.systemMessage = {}; + for (var keys = Object.keys(object.systemMessage), i = 0; i < keys.length; ++i) { + if (typeof object.systemMessage[keys[i]] !== "object") + throw TypeError(".meerkat.BoothSystemMessages.systemMessage: object expected"); + message.systemMessage[keys[i]] = $root.meerkat.UIElement.fromObject(object.systemMessage[keys[i]]); + } + } + return message; + }; + + /** + * Creates a plain object from a BoothSystemMessages message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BoothSystemMessages + * @static + * @param {meerkat.BoothSystemMessages} message BoothSystemMessages + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BoothSystemMessages.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.objects || options.defaults) + object.systemMessage = {}; + var keys2; + if (message.systemMessage && (keys2 = Object.keys(message.systemMessage)).length) { + object.systemMessage = {}; + for (var j = 0; j < keys2.length; ++j) + object.systemMessage[keys2[j]] = $root.meerkat.UIElement.toObject(message.systemMessage[keys2[j]], options); + } + return object; + }; + + /** + * Converts this BoothSystemMessages to JSON. + * @function toJSON + * @memberof meerkat.BoothSystemMessages + * @instance + * @returns {Object.} JSON object + */ + BoothSystemMessages.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BoothSystemMessages; + })(); + + meerkat.BallotAnswerTranslationTable = (function() { + + /** + * Properties of a BallotAnswerTranslationTable. + * @memberof meerkat + * @interface IBallotAnswerTranslationTable + * @property {Uint8Array} [data] BallotAnswerTranslationTable data + */ + + /** + * Constructs a new BallotAnswerTranslationTable. + * @memberof meerkat + * @classdesc Represents a BallotAnswerTranslationTable. + * @constructor + * @param {meerkat.IBallotAnswerTranslationTable=} [properties] Properties to set + */ + function BallotAnswerTranslationTable(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BallotAnswerTranslationTable data. + * @member {Uint8Array}data + * @memberof meerkat.BallotAnswerTranslationTable + * @instance + */ + BallotAnswerTranslationTable.prototype.data = $util.newBuffer([]); + + /** + * Creates a new BallotAnswerTranslationTable instance using the specified properties. + * @function create + * @memberof meerkat.BallotAnswerTranslationTable + * @static + * @param {meerkat.IBallotAnswerTranslationTable=} [properties] Properties to set + * @returns {meerkat.BallotAnswerTranslationTable} BallotAnswerTranslationTable instance + */ + BallotAnswerTranslationTable.create = function create(properties) { + return new BallotAnswerTranslationTable(properties); + }; + + /** + * Encodes the specified BallotAnswerTranslationTable message. Does not implicitly {@link meerkat.BallotAnswerTranslationTable.verify|verify} messages. + * @function encode + * @memberof meerkat.BallotAnswerTranslationTable + * @static + * @param {meerkat.IBallotAnswerTranslationTable} message BallotAnswerTranslationTable message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BallotAnswerTranslationTable.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified BallotAnswerTranslationTable message, length delimited. Does not implicitly {@link meerkat.BallotAnswerTranslationTable.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BallotAnswerTranslationTable + * @static + * @param {meerkat.IBallotAnswerTranslationTable} message BallotAnswerTranslationTable message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BallotAnswerTranslationTable.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BallotAnswerTranslationTable message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BallotAnswerTranslationTable + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BallotAnswerTranslationTable} BallotAnswerTranslationTable + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BallotAnswerTranslationTable.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BallotAnswerTranslationTable(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BallotAnswerTranslationTable message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BallotAnswerTranslationTable + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BallotAnswerTranslationTable} BallotAnswerTranslationTable + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BallotAnswerTranslationTable.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BallotAnswerTranslationTable message. + * @function verify + * @memberof meerkat.BallotAnswerTranslationTable + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BallotAnswerTranslationTable.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates a BallotAnswerTranslationTable message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BallotAnswerTranslationTable + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BallotAnswerTranslationTable} BallotAnswerTranslationTable + */ + BallotAnswerTranslationTable.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BallotAnswerTranslationTable) + return object; + var message = new $root.meerkat.BallotAnswerTranslationTable(); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from a BallotAnswerTranslationTable message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BallotAnswerTranslationTable + * @static + * @param {meerkat.BallotAnswerTranslationTable} message BallotAnswerTranslationTable + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BallotAnswerTranslationTable.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.data = options.bytes === String ? "" : []; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this BallotAnswerTranslationTable to JSON. + * @function toJSON + * @memberof meerkat.BallotAnswerTranslationTable + * @instance + * @returns {Object.} JSON object + */ + BallotAnswerTranslationTable.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BallotAnswerTranslationTable; + })(); + + meerkat.BulletinBoardClientParams = (function() { + + /** + * Properties of a BulletinBoardClientParams. + * @memberof meerkat + * @interface IBulletinBoardClientParams + * @property {Array.} [bulletinBoardAddress] BulletinBoardClientParams bulletinBoardAddress + * @property {number} [minRedundancy] BulletinBoardClientParams minRedundancy + */ + + /** + * Constructs a new BulletinBoardClientParams. + * @memberof meerkat + * @classdesc Represents a BulletinBoardClientParams. + * @constructor + * @param {meerkat.IBulletinBoardClientParams=} [properties] Properties to set + */ + function BulletinBoardClientParams(properties) { + this.bulletinBoardAddress = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BulletinBoardClientParams bulletinBoardAddress. + * @member {Array.}bulletinBoardAddress + * @memberof meerkat.BulletinBoardClientParams + * @instance + */ + BulletinBoardClientParams.prototype.bulletinBoardAddress = $util.emptyArray; + + /** + * BulletinBoardClientParams minRedundancy. + * @member {number}minRedundancy + * @memberof meerkat.BulletinBoardClientParams + * @instance + */ + BulletinBoardClientParams.prototype.minRedundancy = 0; + + /** + * Creates a new BulletinBoardClientParams instance using the specified properties. + * @function create + * @memberof meerkat.BulletinBoardClientParams + * @static + * @param {meerkat.IBulletinBoardClientParams=} [properties] Properties to set + * @returns {meerkat.BulletinBoardClientParams} BulletinBoardClientParams instance + */ + BulletinBoardClientParams.create = function create(properties) { + return new BulletinBoardClientParams(properties); + }; + + /** + * Encodes the specified BulletinBoardClientParams message. Does not implicitly {@link meerkat.BulletinBoardClientParams.verify|verify} messages. + * @function encode + * @memberof meerkat.BulletinBoardClientParams + * @static + * @param {meerkat.IBulletinBoardClientParams} message BulletinBoardClientParams message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BulletinBoardClientParams.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.bulletinBoardAddress != null && message.bulletinBoardAddress.length) + for (var i = 0; i < message.bulletinBoardAddress.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.bulletinBoardAddress[i]); + if (message.minRedundancy != null && message.hasOwnProperty("minRedundancy")) + writer.uint32(/* id 2, wireType 5 =*/21).float(message.minRedundancy); + return writer; + }; + + /** + * Encodes the specified BulletinBoardClientParams message, length delimited. Does not implicitly {@link meerkat.BulletinBoardClientParams.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.BulletinBoardClientParams + * @static + * @param {meerkat.IBulletinBoardClientParams} message BulletinBoardClientParams message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BulletinBoardClientParams.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BulletinBoardClientParams message from the specified reader or buffer. + * @function decode + * @memberof meerkat.BulletinBoardClientParams + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.BulletinBoardClientParams} BulletinBoardClientParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BulletinBoardClientParams.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BulletinBoardClientParams(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.bulletinBoardAddress && message.bulletinBoardAddress.length)) + message.bulletinBoardAddress = []; + message.bulletinBoardAddress.push(reader.string()); + break; + case 2: + message.minRedundancy = reader.float(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BulletinBoardClientParams message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.BulletinBoardClientParams + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.BulletinBoardClientParams} BulletinBoardClientParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BulletinBoardClientParams.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BulletinBoardClientParams message. + * @function verify + * @memberof meerkat.BulletinBoardClientParams + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BulletinBoardClientParams.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.bulletinBoardAddress != null && message.hasOwnProperty("bulletinBoardAddress")) { + if (!Array.isArray(message.bulletinBoardAddress)) + return "bulletinBoardAddress: array expected"; + for (var i = 0; i < message.bulletinBoardAddress.length; ++i) + if (!$util.isString(message.bulletinBoardAddress[i])) + return "bulletinBoardAddress: string[] expected"; + } + if (message.minRedundancy != null && message.hasOwnProperty("minRedundancy")) + if (typeof message.minRedundancy !== "number") + return "minRedundancy: number expected"; + return null; + }; + + /** + * Creates a BulletinBoardClientParams message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.BulletinBoardClientParams + * @static + * @param {Object.} object Plain object + * @returns {meerkat.BulletinBoardClientParams} BulletinBoardClientParams + */ + BulletinBoardClientParams.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.BulletinBoardClientParams) + return object; + var message = new $root.meerkat.BulletinBoardClientParams(); + if (object.bulletinBoardAddress) { + if (!Array.isArray(object.bulletinBoardAddress)) + throw TypeError(".meerkat.BulletinBoardClientParams.bulletinBoardAddress: array expected"); + message.bulletinBoardAddress = []; + for (var i = 0; i < object.bulletinBoardAddress.length; ++i) + message.bulletinBoardAddress[i] = String(object.bulletinBoardAddress[i]); + } + if (object.minRedundancy != null) + message.minRedundancy = Number(object.minRedundancy); + return message; + }; + + /** + * Creates a plain object from a BulletinBoardClientParams message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.BulletinBoardClientParams + * @static + * @param {meerkat.BulletinBoardClientParams} message BulletinBoardClientParams + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BulletinBoardClientParams.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.bulletinBoardAddress = []; + if (options.defaults) + object.minRedundancy = 0; + if (message.bulletinBoardAddress && message.bulletinBoardAddress.length) { + object.bulletinBoardAddress = []; + for (var j = 0; j < message.bulletinBoardAddress.length; ++j) + object.bulletinBoardAddress[j] = message.bulletinBoardAddress[j]; + } + if (message.minRedundancy != null && message.hasOwnProperty("minRedundancy")) + object.minRedundancy = options.json && !isFinite(message.minRedundancy) ? String(message.minRedundancy) : message.minRedundancy; + return object; + }; + + /** + * Converts this BulletinBoardClientParams to JSON. + * @function toJSON + * @memberof meerkat.BulletinBoardClientParams + * @instance + * @returns {Object.} JSON object + */ + BulletinBoardClientParams.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return BulletinBoardClientParams; + })(); + + meerkat.ElectionParams = (function() { + + /** + * Properties of an ElectionParams. + * @memberof meerkat + * @interface IElectionParams + * @property {Array.} [trusteeVerificationKeys] ElectionParams trusteeVerificationKeys + * @property {number} [trusteeSignatureThreshold] ElectionParams trusteeSignatureThreshold + * @property {meerkat.IEncryptionPublicKey} [ballotEncryptionKey] ElectionParams ballotEncryptionKey + * @property {Array.} [mixerVerificationKeys] ElectionParams mixerVerificationKeys + * @property {number} [mixerThreshold] ElectionParams mixerThreshold + * @property {Array.} [channelChoiceQuestions] ElectionParams channelChoiceQuestions + * @property {meerkat.ISimpleCategoriesSelectionData} [selectionData] ElectionParams selectionData + * @property {Array.} [raceQuestions] ElectionParams raceQuestions + * @property {meerkat.IBulletinBoardClientParams} [bulletinBoardClientParams] ElectionParams bulletinBoardClientParams + */ + + /** + * Constructs a new ElectionParams. + * @memberof meerkat + * @classdesc Represents an ElectionParams. + * @constructor + * @param {meerkat.IElectionParams=} [properties] Properties to set + */ + function ElectionParams(properties) { + this.trusteeVerificationKeys = []; + this.mixerVerificationKeys = []; + this.channelChoiceQuestions = []; + this.raceQuestions = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ElectionParams trusteeVerificationKeys. + * @member {Array.}trusteeVerificationKeys + * @memberof meerkat.ElectionParams + * @instance + */ + ElectionParams.prototype.trusteeVerificationKeys = $util.emptyArray; + + /** + * ElectionParams trusteeSignatureThreshold. + * @member {number}trusteeSignatureThreshold + * @memberof meerkat.ElectionParams + * @instance + */ + ElectionParams.prototype.trusteeSignatureThreshold = 0; + + /** + * ElectionParams ballotEncryptionKey. + * @member {(meerkat.IEncryptionPublicKey|null|undefined)}ballotEncryptionKey + * @memberof meerkat.ElectionParams + * @instance + */ + ElectionParams.prototype.ballotEncryptionKey = null; + + /** + * ElectionParams mixerVerificationKeys. + * @member {Array.}mixerVerificationKeys + * @memberof meerkat.ElectionParams + * @instance + */ + ElectionParams.prototype.mixerVerificationKeys = $util.emptyArray; + + /** + * ElectionParams mixerThreshold. + * @member {number}mixerThreshold + * @memberof meerkat.ElectionParams + * @instance + */ + ElectionParams.prototype.mixerThreshold = 0; + + /** + * ElectionParams channelChoiceQuestions. + * @member {Array.}channelChoiceQuestions + * @memberof meerkat.ElectionParams + * @instance + */ + ElectionParams.prototype.channelChoiceQuestions = $util.emptyArray; + + /** + * ElectionParams selectionData. + * @member {(meerkat.ISimpleCategoriesSelectionData|null|undefined)}selectionData + * @memberof meerkat.ElectionParams + * @instance + */ + ElectionParams.prototype.selectionData = null; + + /** + * ElectionParams raceQuestions. + * @member {Array.}raceQuestions + * @memberof meerkat.ElectionParams + * @instance + */ + ElectionParams.prototype.raceQuestions = $util.emptyArray; + + /** + * ElectionParams bulletinBoardClientParams. + * @member {(meerkat.IBulletinBoardClientParams|null|undefined)}bulletinBoardClientParams + * @memberof meerkat.ElectionParams + * @instance + */ + ElectionParams.prototype.bulletinBoardClientParams = null; + + /** + * Creates a new ElectionParams instance using the specified properties. + * @function create + * @memberof meerkat.ElectionParams + * @static + * @param {meerkat.IElectionParams=} [properties] Properties to set + * @returns {meerkat.ElectionParams} ElectionParams instance + */ + ElectionParams.create = function create(properties) { + return new ElectionParams(properties); + }; + + /** + * Encodes the specified ElectionParams message. Does not implicitly {@link meerkat.ElectionParams.verify|verify} messages. + * @function encode + * @memberof meerkat.ElectionParams + * @static + * @param {meerkat.IElectionParams} message ElectionParams message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ElectionParams.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.trusteeVerificationKeys != null && message.trusteeVerificationKeys.length) + for (var i = 0; i < message.trusteeVerificationKeys.length; ++i) + $root.meerkat.SignatureVerificationKey.encode(message.trusteeVerificationKeys[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.trusteeSignatureThreshold != null && message.hasOwnProperty("trusteeSignatureThreshold")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.trusteeSignatureThreshold); + if (message.ballotEncryptionKey != null && message.hasOwnProperty("ballotEncryptionKey")) + $root.meerkat.EncryptionPublicKey.encode(message.ballotEncryptionKey, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.mixerVerificationKeys != null && message.mixerVerificationKeys.length) + for (var i = 0; i < message.mixerVerificationKeys.length; ++i) + $root.meerkat.SignatureVerificationKey.encode(message.mixerVerificationKeys[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.mixerThreshold != null && message.hasOwnProperty("mixerThreshold")) + writer.uint32(/* id 5, wireType 0 =*/40).uint32(message.mixerThreshold); + if (message.channelChoiceQuestions != null && message.channelChoiceQuestions.length) + for (var i = 0; i < message.channelChoiceQuestions.length; ++i) + $root.meerkat.BallotQuestion.encode(message.channelChoiceQuestions[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.selectionData != null && message.hasOwnProperty("selectionData")) + $root.meerkat.SimpleCategoriesSelectionData.encode(message.selectionData, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.raceQuestions != null && message.raceQuestions.length) + for (var i = 0; i < message.raceQuestions.length; ++i) + $root.meerkat.BallotQuestion.encode(message.raceQuestions[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.bulletinBoardClientParams != null && message.hasOwnProperty("bulletinBoardClientParams")) + $root.meerkat.BulletinBoardClientParams.encode(message.bulletinBoardClientParams, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ElectionParams message, length delimited. Does not implicitly {@link meerkat.ElectionParams.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.ElectionParams + * @static + * @param {meerkat.IElectionParams} message ElectionParams message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ElectionParams.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ElectionParams message from the specified reader or buffer. + * @function decode + * @memberof meerkat.ElectionParams + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.ElectionParams} ElectionParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ElectionParams.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ElectionParams(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.trusteeVerificationKeys && message.trusteeVerificationKeys.length)) + message.trusteeVerificationKeys = []; + message.trusteeVerificationKeys.push($root.meerkat.SignatureVerificationKey.decode(reader, reader.uint32())); + break; + case 2: + message.trusteeSignatureThreshold = reader.uint32(); + break; + case 3: + message.ballotEncryptionKey = $root.meerkat.EncryptionPublicKey.decode(reader, reader.uint32()); + break; + case 4: + if (!(message.mixerVerificationKeys && message.mixerVerificationKeys.length)) + message.mixerVerificationKeys = []; + message.mixerVerificationKeys.push($root.meerkat.SignatureVerificationKey.decode(reader, reader.uint32())); + break; + case 5: + message.mixerThreshold = reader.uint32(); + break; + case 6: + if (!(message.channelChoiceQuestions && message.channelChoiceQuestions.length)) + message.channelChoiceQuestions = []; + message.channelChoiceQuestions.push($root.meerkat.BallotQuestion.decode(reader, reader.uint32())); + break; + case 7: + message.selectionData = $root.meerkat.SimpleCategoriesSelectionData.decode(reader, reader.uint32()); + break; + case 8: + if (!(message.raceQuestions && message.raceQuestions.length)) + message.raceQuestions = []; + message.raceQuestions.push($root.meerkat.BallotQuestion.decode(reader, reader.uint32())); + break; + case 9: + message.bulletinBoardClientParams = $root.meerkat.BulletinBoardClientParams.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ElectionParams message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.ElectionParams + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.ElectionParams} ElectionParams + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ElectionParams.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ElectionParams message. + * @function verify + * @memberof meerkat.ElectionParams + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ElectionParams.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.trusteeVerificationKeys != null && message.hasOwnProperty("trusteeVerificationKeys")) { + if (!Array.isArray(message.trusteeVerificationKeys)) + return "trusteeVerificationKeys: array expected"; + for (var i = 0; i < message.trusteeVerificationKeys.length; ++i) { + var error = $root.meerkat.SignatureVerificationKey.verify(message.trusteeVerificationKeys[i]); + if (error) + return "trusteeVerificationKeys." + error; + } + } + if (message.trusteeSignatureThreshold != null && message.hasOwnProperty("trusteeSignatureThreshold")) + if (!$util.isInteger(message.trusteeSignatureThreshold)) + return "trusteeSignatureThreshold: integer expected"; + if (message.ballotEncryptionKey != null && message.hasOwnProperty("ballotEncryptionKey")) { + error = $root.meerkat.EncryptionPublicKey.verify(message.ballotEncryptionKey); + if (error) + return "ballotEncryptionKey." + error; + } + if (message.mixerVerificationKeys != null && message.hasOwnProperty("mixerVerificationKeys")) { + if (!Array.isArray(message.mixerVerificationKeys)) + return "mixerVerificationKeys: array expected"; + for (var i = 0; i < message.mixerVerificationKeys.length; ++i) { + error = $root.meerkat.SignatureVerificationKey.verify(message.mixerVerificationKeys[i]); + if (error) + return "mixerVerificationKeys." + error; + } + } + if (message.mixerThreshold != null && message.hasOwnProperty("mixerThreshold")) + if (!$util.isInteger(message.mixerThreshold)) + return "mixerThreshold: integer expected"; + if (message.channelChoiceQuestions != null && message.hasOwnProperty("channelChoiceQuestions")) { + if (!Array.isArray(message.channelChoiceQuestions)) + return "channelChoiceQuestions: array expected"; + for (var i = 0; i < message.channelChoiceQuestions.length; ++i) { + error = $root.meerkat.BallotQuestion.verify(message.channelChoiceQuestions[i]); + if (error) + return "channelChoiceQuestions." + error; + } + } + if (message.selectionData != null && message.hasOwnProperty("selectionData")) { + error = $root.meerkat.SimpleCategoriesSelectionData.verify(message.selectionData); + if (error) + return "selectionData." + error; + } + if (message.raceQuestions != null && message.hasOwnProperty("raceQuestions")) { + if (!Array.isArray(message.raceQuestions)) + return "raceQuestions: array expected"; + for (var i = 0; i < message.raceQuestions.length; ++i) { + error = $root.meerkat.BallotQuestion.verify(message.raceQuestions[i]); + if (error) + return "raceQuestions." + error; + } + } + if (message.bulletinBoardClientParams != null && message.hasOwnProperty("bulletinBoardClientParams")) { + error = $root.meerkat.BulletinBoardClientParams.verify(message.bulletinBoardClientParams); + if (error) + return "bulletinBoardClientParams." + error; + } + return null; + }; + + /** + * Creates an ElectionParams message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.ElectionParams + * @static + * @param {Object.} object Plain object + * @returns {meerkat.ElectionParams} ElectionParams + */ + ElectionParams.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.ElectionParams) + return object; + var message = new $root.meerkat.ElectionParams(); + if (object.trusteeVerificationKeys) { + if (!Array.isArray(object.trusteeVerificationKeys)) + throw TypeError(".meerkat.ElectionParams.trusteeVerificationKeys: array expected"); + message.trusteeVerificationKeys = []; + for (var i = 0; i < object.trusteeVerificationKeys.length; ++i) { + if (typeof object.trusteeVerificationKeys[i] !== "object") + throw TypeError(".meerkat.ElectionParams.trusteeVerificationKeys: object expected"); + message.trusteeVerificationKeys[i] = $root.meerkat.SignatureVerificationKey.fromObject(object.trusteeVerificationKeys[i]); + } + } + if (object.trusteeSignatureThreshold != null) + message.trusteeSignatureThreshold = object.trusteeSignatureThreshold >>> 0; + if (object.ballotEncryptionKey != null) { + if (typeof object.ballotEncryptionKey !== "object") + throw TypeError(".meerkat.ElectionParams.ballotEncryptionKey: object expected"); + message.ballotEncryptionKey = $root.meerkat.EncryptionPublicKey.fromObject(object.ballotEncryptionKey); + } + if (object.mixerVerificationKeys) { + if (!Array.isArray(object.mixerVerificationKeys)) + throw TypeError(".meerkat.ElectionParams.mixerVerificationKeys: array expected"); + message.mixerVerificationKeys = []; + for (var i = 0; i < object.mixerVerificationKeys.length; ++i) { + if (typeof object.mixerVerificationKeys[i] !== "object") + throw TypeError(".meerkat.ElectionParams.mixerVerificationKeys: object expected"); + message.mixerVerificationKeys[i] = $root.meerkat.SignatureVerificationKey.fromObject(object.mixerVerificationKeys[i]); + } + } + if (object.mixerThreshold != null) + message.mixerThreshold = object.mixerThreshold >>> 0; + if (object.channelChoiceQuestions) { + if (!Array.isArray(object.channelChoiceQuestions)) + throw TypeError(".meerkat.ElectionParams.channelChoiceQuestions: array expected"); + message.channelChoiceQuestions = []; + for (var i = 0; i < object.channelChoiceQuestions.length; ++i) { + if (typeof object.channelChoiceQuestions[i] !== "object") + throw TypeError(".meerkat.ElectionParams.channelChoiceQuestions: object expected"); + message.channelChoiceQuestions[i] = $root.meerkat.BallotQuestion.fromObject(object.channelChoiceQuestions[i]); + } + } + if (object.selectionData != null) { + if (typeof object.selectionData !== "object") + throw TypeError(".meerkat.ElectionParams.selectionData: object expected"); + message.selectionData = $root.meerkat.SimpleCategoriesSelectionData.fromObject(object.selectionData); + } + if (object.raceQuestions) { + if (!Array.isArray(object.raceQuestions)) + throw TypeError(".meerkat.ElectionParams.raceQuestions: array expected"); + message.raceQuestions = []; + for (var i = 0; i < object.raceQuestions.length; ++i) { + if (typeof object.raceQuestions[i] !== "object") + throw TypeError(".meerkat.ElectionParams.raceQuestions: object expected"); + message.raceQuestions[i] = $root.meerkat.BallotQuestion.fromObject(object.raceQuestions[i]); + } + } + if (object.bulletinBoardClientParams != null) { + if (typeof object.bulletinBoardClientParams !== "object") + throw TypeError(".meerkat.ElectionParams.bulletinBoardClientParams: object expected"); + message.bulletinBoardClientParams = $root.meerkat.BulletinBoardClientParams.fromObject(object.bulletinBoardClientParams); + } + return message; + }; + + /** + * Creates a plain object from an ElectionParams message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.ElectionParams + * @static + * @param {meerkat.ElectionParams} message ElectionParams + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ElectionParams.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.trusteeVerificationKeys = []; + object.mixerVerificationKeys = []; + object.channelChoiceQuestions = []; + object.raceQuestions = []; + } + if (options.defaults) { + object.trusteeSignatureThreshold = 0; + object.ballotEncryptionKey = null; + object.mixerThreshold = 0; + object.selectionData = null; + object.bulletinBoardClientParams = null; + } + if (message.trusteeVerificationKeys && message.trusteeVerificationKeys.length) { + object.trusteeVerificationKeys = []; + for (var j = 0; j < message.trusteeVerificationKeys.length; ++j) + object.trusteeVerificationKeys[j] = $root.meerkat.SignatureVerificationKey.toObject(message.trusteeVerificationKeys[j], options); + } + if (message.trusteeSignatureThreshold != null && message.hasOwnProperty("trusteeSignatureThreshold")) + object.trusteeSignatureThreshold = message.trusteeSignatureThreshold; + if (message.ballotEncryptionKey != null && message.hasOwnProperty("ballotEncryptionKey")) + object.ballotEncryptionKey = $root.meerkat.EncryptionPublicKey.toObject(message.ballotEncryptionKey, options); + if (message.mixerVerificationKeys && message.mixerVerificationKeys.length) { + object.mixerVerificationKeys = []; + for (var j = 0; j < message.mixerVerificationKeys.length; ++j) + object.mixerVerificationKeys[j] = $root.meerkat.SignatureVerificationKey.toObject(message.mixerVerificationKeys[j], options); + } + if (message.mixerThreshold != null && message.hasOwnProperty("mixerThreshold")) + object.mixerThreshold = message.mixerThreshold; + if (message.channelChoiceQuestions && message.channelChoiceQuestions.length) { + object.channelChoiceQuestions = []; + for (var j = 0; j < message.channelChoiceQuestions.length; ++j) + object.channelChoiceQuestions[j] = $root.meerkat.BallotQuestion.toObject(message.channelChoiceQuestions[j], options); + } + if (message.selectionData != null && message.hasOwnProperty("selectionData")) + object.selectionData = $root.meerkat.SimpleCategoriesSelectionData.toObject(message.selectionData, options); + if (message.raceQuestions && message.raceQuestions.length) { + object.raceQuestions = []; + for (var j = 0; j < message.raceQuestions.length; ++j) + object.raceQuestions[j] = $root.meerkat.BallotQuestion.toObject(message.raceQuestions[j], options); + } + if (message.bulletinBoardClientParams != null && message.hasOwnProperty("bulletinBoardClientParams")) + object.bulletinBoardClientParams = $root.meerkat.BulletinBoardClientParams.toObject(message.bulletinBoardClientParams, options); + return object; + }; + + /** + * Converts this ElectionParams to JSON. + * @function toJSON + * @memberof meerkat.ElectionParams + * @instance + * @returns {Object.} JSON object + */ + ElectionParams.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ElectionParams; + })(); + + meerkat.Category = (function() { + + /** + * Properties of a Category. + * @memberof meerkat + * @interface ICategory + * @property {Array.} [questionIndex] Category questionIndex + */ + + /** + * Constructs a new Category. + * @memberof meerkat + * @classdesc Represents a Category. + * @constructor + * @param {meerkat.ICategory=} [properties] Properties to set + */ + function Category(properties) { + this.questionIndex = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Category questionIndex. + * @member {Array.}questionIndex + * @memberof meerkat.Category + * @instance + */ + Category.prototype.questionIndex = $util.emptyArray; + + /** + * Creates a new Category instance using the specified properties. + * @function create + * @memberof meerkat.Category + * @static + * @param {meerkat.ICategory=} [properties] Properties to set + * @returns {meerkat.Category} Category instance + */ + Category.create = function create(properties) { + return new Category(properties); + }; + + /** + * Encodes the specified Category message. Does not implicitly {@link meerkat.Category.verify|verify} messages. + * @function encode + * @memberof meerkat.Category + * @static + * @param {meerkat.ICategory} message Category message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Category.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.questionIndex != null && message.questionIndex.length) { + writer.uint32(/* id 1, wireType 2 =*/10).fork(); + for (var i = 0; i < message.questionIndex.length; ++i) + writer.uint32(message.questionIndex[i]); + writer.ldelim(); + } + return writer; + }; + + /** + * Encodes the specified Category message, length delimited. Does not implicitly {@link meerkat.Category.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.Category + * @static + * @param {meerkat.ICategory} message Category message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Category.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Category message from the specified reader or buffer. + * @function decode + * @memberof meerkat.Category + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.Category} Category + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Category.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Category(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.questionIndex && message.questionIndex.length)) + message.questionIndex = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.questionIndex.push(reader.uint32()); + } else + message.questionIndex.push(reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Category message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.Category + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.Category} Category + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Category.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Category message. + * @function verify + * @memberof meerkat.Category + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Category.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.questionIndex != null && message.hasOwnProperty("questionIndex")) { + if (!Array.isArray(message.questionIndex)) + return "questionIndex: array expected"; + for (var i = 0; i < message.questionIndex.length; ++i) + if (!$util.isInteger(message.questionIndex[i])) + return "questionIndex: integer[] expected"; + } + return null; + }; + + /** + * Creates a Category message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.Category + * @static + * @param {Object.} object Plain object + * @returns {meerkat.Category} Category + */ + Category.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.Category) + return object; + var message = new $root.meerkat.Category(); + if (object.questionIndex) { + if (!Array.isArray(object.questionIndex)) + throw TypeError(".meerkat.Category.questionIndex: array expected"); + message.questionIndex = []; + for (var i = 0; i < object.questionIndex.length; ++i) + message.questionIndex[i] = object.questionIndex[i] >>> 0; + } + return message; + }; + + /** + * Creates a plain object from a Category message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.Category + * @static + * @param {meerkat.Category} message Category + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Category.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.questionIndex = []; + if (message.questionIndex && message.questionIndex.length) { + object.questionIndex = []; + for (var j = 0; j < message.questionIndex.length; ++j) + object.questionIndex[j] = message.questionIndex[j]; + } + return object; + }; + + /** + * Converts this Category to JSON. + * @function toJSON + * @memberof meerkat.Category + * @instance + * @returns {Object.} JSON object + */ + Category.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Category; + })(); + + meerkat.CategoryChooser = (function() { + + /** + * Properties of a CategoryChooser. + * @memberof meerkat + * @interface ICategoryChooser + * @property {Array.} [category] CategoryChooser category + */ + + /** + * Constructs a new CategoryChooser. + * @memberof meerkat + * @classdesc Represents a CategoryChooser. + * @constructor + * @param {meerkat.ICategoryChooser=} [properties] Properties to set + */ + function CategoryChooser(properties) { + this.category = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CategoryChooser category. + * @member {Array.}category + * @memberof meerkat.CategoryChooser + * @instance + */ + CategoryChooser.prototype.category = $util.emptyArray; + + /** + * Creates a new CategoryChooser instance using the specified properties. + * @function create + * @memberof meerkat.CategoryChooser + * @static + * @param {meerkat.ICategoryChooser=} [properties] Properties to set + * @returns {meerkat.CategoryChooser} CategoryChooser instance + */ + CategoryChooser.create = function create(properties) { + return new CategoryChooser(properties); + }; + + /** + * Encodes the specified CategoryChooser message. Does not implicitly {@link meerkat.CategoryChooser.verify|verify} messages. + * @function encode + * @memberof meerkat.CategoryChooser + * @static + * @param {meerkat.ICategoryChooser} message CategoryChooser message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CategoryChooser.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.category != null && message.category.length) + for (var i = 0; i < message.category.length; ++i) + $root.meerkat.Category.encode(message.category[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified CategoryChooser message, length delimited. Does not implicitly {@link meerkat.CategoryChooser.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.CategoryChooser + * @static + * @param {meerkat.ICategoryChooser} message CategoryChooser message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CategoryChooser.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CategoryChooser message from the specified reader or buffer. + * @function decode + * @memberof meerkat.CategoryChooser + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.CategoryChooser} CategoryChooser + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CategoryChooser.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.CategoryChooser(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.category && message.category.length)) + message.category = []; + message.category.push($root.meerkat.Category.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CategoryChooser message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.CategoryChooser + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.CategoryChooser} CategoryChooser + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CategoryChooser.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CategoryChooser message. + * @function verify + * @memberof meerkat.CategoryChooser + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CategoryChooser.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.category != null && message.hasOwnProperty("category")) { + if (!Array.isArray(message.category)) + return "category: array expected"; + for (var i = 0; i < message.category.length; ++i) { + var error = $root.meerkat.Category.verify(message.category[i]); + if (error) + return "category." + error; + } + } + return null; + }; + + /** + * Creates a CategoryChooser message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.CategoryChooser + * @static + * @param {Object.} object Plain object + * @returns {meerkat.CategoryChooser} CategoryChooser + */ + CategoryChooser.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.CategoryChooser) + return object; + var message = new $root.meerkat.CategoryChooser(); + if (object.category) { + if (!Array.isArray(object.category)) + throw TypeError(".meerkat.CategoryChooser.category: array expected"); + message.category = []; + for (var i = 0; i < object.category.length; ++i) { + if (typeof object.category[i] !== "object") + throw TypeError(".meerkat.CategoryChooser.category: object expected"); + message.category[i] = $root.meerkat.Category.fromObject(object.category[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a CategoryChooser message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.CategoryChooser + * @static + * @param {meerkat.CategoryChooser} message CategoryChooser + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CategoryChooser.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.category = []; + if (message.category && message.category.length) { + object.category = []; + for (var j = 0; j < message.category.length; ++j) + object.category[j] = $root.meerkat.Category.toObject(message.category[j], options); + } + return object; + }; + + /** + * Converts this CategoryChooser to JSON. + * @function toJSON + * @memberof meerkat.CategoryChooser + * @instance + * @returns {Object.} JSON object + */ + CategoryChooser.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return CategoryChooser; + })(); + + meerkat.SimpleCategoriesSelectionData = (function() { + + /** + * Properties of a SimpleCategoriesSelectionData. + * @memberof meerkat + * @interface ISimpleCategoriesSelectionData + * @property {meerkat.ICategory} [sharedDefaults] SimpleCategoriesSelectionData sharedDefaults + * @property {Array.} [categoryChooser] SimpleCategoriesSelectionData categoryChooser + */ + + /** + * Constructs a new SimpleCategoriesSelectionData. + * @memberof meerkat + * @classdesc Represents a SimpleCategoriesSelectionData. + * @constructor + * @param {meerkat.ISimpleCategoriesSelectionData=} [properties] Properties to set + */ + function SimpleCategoriesSelectionData(properties) { + this.categoryChooser = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SimpleCategoriesSelectionData sharedDefaults. + * @member {(meerkat.ICategory|null|undefined)}sharedDefaults + * @memberof meerkat.SimpleCategoriesSelectionData + * @instance + */ + SimpleCategoriesSelectionData.prototype.sharedDefaults = null; + + /** + * SimpleCategoriesSelectionData categoryChooser. + * @member {Array.}categoryChooser + * @memberof meerkat.SimpleCategoriesSelectionData + * @instance + */ + SimpleCategoriesSelectionData.prototype.categoryChooser = $util.emptyArray; + + /** + * Creates a new SimpleCategoriesSelectionData instance using the specified properties. + * @function create + * @memberof meerkat.SimpleCategoriesSelectionData + * @static + * @param {meerkat.ISimpleCategoriesSelectionData=} [properties] Properties to set + * @returns {meerkat.SimpleCategoriesSelectionData} SimpleCategoriesSelectionData instance + */ + SimpleCategoriesSelectionData.create = function create(properties) { + return new SimpleCategoriesSelectionData(properties); + }; + + /** + * Encodes the specified SimpleCategoriesSelectionData message. Does not implicitly {@link meerkat.SimpleCategoriesSelectionData.verify|verify} messages. + * @function encode + * @memberof meerkat.SimpleCategoriesSelectionData + * @static + * @param {meerkat.ISimpleCategoriesSelectionData} message SimpleCategoriesSelectionData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SimpleCategoriesSelectionData.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.sharedDefaults != null && message.hasOwnProperty("sharedDefaults")) + $root.meerkat.Category.encode(message.sharedDefaults, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.categoryChooser != null && message.categoryChooser.length) + for (var i = 0; i < message.categoryChooser.length; ++i) + $root.meerkat.CategoryChooser.encode(message.categoryChooser[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified SimpleCategoriesSelectionData message, length delimited. Does not implicitly {@link meerkat.SimpleCategoriesSelectionData.verify|verify} messages. + * @function encodeDelimited + * @memberof meerkat.SimpleCategoriesSelectionData + * @static + * @param {meerkat.ISimpleCategoriesSelectionData} message SimpleCategoriesSelectionData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SimpleCategoriesSelectionData.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SimpleCategoriesSelectionData message from the specified reader or buffer. + * @function decode + * @memberof meerkat.SimpleCategoriesSelectionData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {meerkat.SimpleCategoriesSelectionData} SimpleCategoriesSelectionData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SimpleCategoriesSelectionData.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.SimpleCategoriesSelectionData(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.sharedDefaults = $root.meerkat.Category.decode(reader, reader.uint32()); + break; + case 2: + if (!(message.categoryChooser && message.categoryChooser.length)) + message.categoryChooser = []; + message.categoryChooser.push($root.meerkat.CategoryChooser.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SimpleCategoriesSelectionData message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof meerkat.SimpleCategoriesSelectionData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {meerkat.SimpleCategoriesSelectionData} SimpleCategoriesSelectionData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SimpleCategoriesSelectionData.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SimpleCategoriesSelectionData message. + * @function verify + * @memberof meerkat.SimpleCategoriesSelectionData + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SimpleCategoriesSelectionData.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.sharedDefaults != null && message.hasOwnProperty("sharedDefaults")) { + var error = $root.meerkat.Category.verify(message.sharedDefaults); + if (error) + return "sharedDefaults." + error; + } + if (message.categoryChooser != null && message.hasOwnProperty("categoryChooser")) { + if (!Array.isArray(message.categoryChooser)) + return "categoryChooser: array expected"; + for (var i = 0; i < message.categoryChooser.length; ++i) { + error = $root.meerkat.CategoryChooser.verify(message.categoryChooser[i]); + if (error) + return "categoryChooser." + error; + } + } + return null; + }; + + /** + * Creates a SimpleCategoriesSelectionData message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof meerkat.SimpleCategoriesSelectionData + * @static + * @param {Object.} object Plain object + * @returns {meerkat.SimpleCategoriesSelectionData} SimpleCategoriesSelectionData + */ + SimpleCategoriesSelectionData.fromObject = function fromObject(object) { + if (object instanceof $root.meerkat.SimpleCategoriesSelectionData) + return object; + var message = new $root.meerkat.SimpleCategoriesSelectionData(); + if (object.sharedDefaults != null) { + if (typeof object.sharedDefaults !== "object") + throw TypeError(".meerkat.SimpleCategoriesSelectionData.sharedDefaults: object expected"); + message.sharedDefaults = $root.meerkat.Category.fromObject(object.sharedDefaults); + } + if (object.categoryChooser) { + if (!Array.isArray(object.categoryChooser)) + throw TypeError(".meerkat.SimpleCategoriesSelectionData.categoryChooser: array expected"); + message.categoryChooser = []; + for (var i = 0; i < object.categoryChooser.length; ++i) { + if (typeof object.categoryChooser[i] !== "object") + throw TypeError(".meerkat.SimpleCategoriesSelectionData.categoryChooser: object expected"); + message.categoryChooser[i] = $root.meerkat.CategoryChooser.fromObject(object.categoryChooser[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a SimpleCategoriesSelectionData message. Also converts values to other types if specified. + * @function toObject + * @memberof meerkat.SimpleCategoriesSelectionData + * @static + * @param {meerkat.SimpleCategoriesSelectionData} message SimpleCategoriesSelectionData + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SimpleCategoriesSelectionData.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.categoryChooser = []; + if (options.defaults) + object.sharedDefaults = null; + if (message.sharedDefaults != null && message.hasOwnProperty("sharedDefaults")) + object.sharedDefaults = $root.meerkat.Category.toObject(message.sharedDefaults, options); + if (message.categoryChooser && message.categoryChooser.length) { + object.categoryChooser = []; + for (var j = 0; j < message.categoryChooser.length; ++j) + object.categoryChooser[j] = $root.meerkat.CategoryChooser.toObject(message.categoryChooser[j], options); + } + return object; + }; + + /** + * Converts this SimpleCategoriesSelectionData to JSON. + * @function toJSON + * @memberof meerkat.SimpleCategoriesSelectionData + * @instance + * @returns {Object.} JSON object + */ + SimpleCategoriesSelectionData.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return SimpleCategoriesSelectionData; + })(); + + return meerkat; +})(); + +$root.google = (function() { + + /** + * Namespace google. + * @exports google + * @namespace + */ + var google = {}; + + google.protobuf = (function() { + + /** + * Namespace protobuf. + * @memberof google + * @namespace + */ + var protobuf = {}; + + protobuf.Timestamp = (function() { + + /** + * Properties of a Timestamp. + * @memberof google.protobuf + * @interface ITimestamp + * @property {number|Long} [seconds] Timestamp seconds + * @property {number} [nanos] Timestamp nanos + */ + + /** + * Constructs a new Timestamp. + * @memberof google.protobuf + * @classdesc Represents a Timestamp. + * @constructor + * @param {google.protobuf.ITimestamp=} [properties] Properties to set + */ + function Timestamp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Timestamp seconds. + * @member {number|Long}seconds + * @memberof google.protobuf.Timestamp + * @instance + */ + Timestamp.prototype.seconds = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * Timestamp nanos. + * @member {number}nanos + * @memberof google.protobuf.Timestamp + * @instance + */ + Timestamp.prototype.nanos = 0; + + /** + * Creates a new Timestamp instance using the specified properties. + * @function create + * @memberof google.protobuf.Timestamp + * @static + * @param {google.protobuf.ITimestamp=} [properties] Properties to set + * @returns {google.protobuf.Timestamp} Timestamp instance + */ + Timestamp.create = function create(properties) { + return new Timestamp(properties); + }; + + /** + * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages. + * @function encode + * @memberof google.protobuf.Timestamp + * @static + * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Timestamp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.seconds != null && message.hasOwnProperty("seconds")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds); + if (message.nanos != null && message.hasOwnProperty("nanos")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos); + return writer; + }; + + /** + * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.Timestamp + * @static + * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Timestamp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Timestamp message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.Timestamp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.Timestamp} Timestamp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Timestamp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Timestamp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.seconds = reader.int64(); + break; + case 2: + message.nanos = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Timestamp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.Timestamp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.Timestamp} Timestamp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Timestamp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Timestamp message. + * @function verify + * @memberof google.protobuf.Timestamp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Timestamp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.seconds != null && message.hasOwnProperty("seconds")) + if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high))) + return "seconds: integer|Long expected"; + if (message.nanos != null && message.hasOwnProperty("nanos")) + if (!$util.isInteger(message.nanos)) + return "nanos: integer expected"; + return null; + }; + + /** + * Creates a Timestamp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.Timestamp + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.Timestamp} Timestamp + */ + Timestamp.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.Timestamp) + return object; + var message = new $root.google.protobuf.Timestamp(); + if (object.seconds != null) + if ($util.Long) + (message.seconds = $util.Long.fromValue(object.seconds)).unsigned = false; + else if (typeof object.seconds === "string") + message.seconds = parseInt(object.seconds, 10); + else if (typeof object.seconds === "number") + message.seconds = object.seconds; + else if (typeof object.seconds === "object") + message.seconds = new $util.LongBits(object.seconds.low >>> 0, object.seconds.high >>> 0).toNumber(); + if (object.nanos != null) + message.nanos = object.nanos | 0; + return message; + }; + + /** + * Creates a plain object from a Timestamp message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.Timestamp + * @static + * @param {google.protobuf.Timestamp} message Timestamp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Timestamp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.seconds = options.longs === String ? "0" : 0; + object.nanos = 0; + } + if (message.seconds != null && message.hasOwnProperty("seconds")) + if (typeof message.seconds === "number") + object.seconds = options.longs === String ? String(message.seconds) : message.seconds; + else + object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds; + if (message.nanos != null && message.hasOwnProperty("nanos")) + object.nanos = message.nanos; + return object; + }; + + /** + * Converts this Timestamp to JSON. + * @function toJSON + * @memberof google.protobuf.Timestamp + * @instance + * @returns {Object.} JSON object + */ + Timestamp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Timestamp; + })(); + + return protobuf; + })(); + + return google; +})(); + +module.exports = $root; diff --git a/bulletin-board-server-frontend/src/assets/.gitkeep b/bulletin-board-server-frontend/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bulletin-board-server-frontend/src/environments/environment.prod.ts b/bulletin-board-server-frontend/src/environments/environment.prod.ts new file mode 100644 index 0000000..3612073 --- /dev/null +++ b/bulletin-board-server-frontend/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/bulletin-board-server-frontend/src/environments/environment.ts b/bulletin-board-server-frontend/src/environments/environment.ts new file mode 100644 index 0000000..b7f639a --- /dev/null +++ b/bulletin-board-server-frontend/src/environments/environment.ts @@ -0,0 +1,8 @@ +// The file contents for the current environment will overwrite these during build. +// The build system defaults to the dev environment which uses `environment.ts`, but if you do +// `ng build --env=prod` then `environment.prod.ts` will be used instead. +// The list of which env maps to which file can be found in `.angular-cli.json`. + +export const environment = { + production: false +}; diff --git a/bulletin-board-server-frontend/src/favicon.ico b/bulletin-board-server-frontend/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8081c7ceaf2be08bf59010158c586170d9d2d517 GIT binary patch literal 5430 zcmc(je{54#6vvCoAI3i*G5%$U7!sA3wtMZ$fH6V9C`=eXGJb@R1%(I_{vnZtpD{6n z5Pl{DmxzBDbrB>}`90e12m8T*36WoeDLA&SD_hw{H^wM!cl_RWcVA!I+x87ee975; z@4kD^=bYPn&pmG@(+JZ`rqQEKxW<}RzhW}I!|ulN=fmjVi@x{p$cC`)5$a!)X&U+blKNvN5tg=uLvuLnuqRM;Yc*swiexsoh#XPNu{9F#c`G zQLe{yWA(Y6(;>y|-efAy11k<09(@Oo1B2@0`PtZSkqK&${ zgEY}`W@t{%?9u5rF?}Y7OL{338l*JY#P!%MVQY@oqnItpZ}?s z!r?*kwuR{A@jg2Chlf0^{q*>8n5Ir~YWf*wmsh7B5&EpHfd5@xVaj&gqsdui^spyL zB|kUoblGoO7G(MuKTfa9?pGH0@QP^b#!lM1yHWLh*2iq#`C1TdrnO-d#?Oh@XV2HK zKA{`eo{--^K&MW66Lgsktfvn#cCAc*(}qsfhrvOjMGLE?`dHVipu1J3Kgr%g?cNa8 z)pkmC8DGH~fG+dlrp(5^-QBeEvkOvv#q7MBVLtm2oD^$lJZx--_=K&Ttd=-krx(Bb zcEoKJda@S!%%@`P-##$>*u%T*mh+QjV@)Qa=Mk1?#zLk+M4tIt%}wagT{5J%!tXAE;r{@=bb%nNVxvI+C+$t?!VJ@0d@HIyMJTI{vEw0Ul ze(ha!e&qANbTL1ZneNl45t=#Ot??C0MHjjgY8%*mGisN|S6%g3;Hlx#fMNcL<87MW zZ>6moo1YD?P!fJ#Jb(4)_cc50X5n0KoDYfdPoL^iV`k&o{LPyaoqMqk92wVM#_O0l z09$(A-D+gVIlq4TA&{1T@BsUH`Bm=r#l$Z51J-U&F32+hfUP-iLo=jg7Xmy+WLq6_tWv&`wDlz#`&)Jp~iQf zZP)tu>}pIIJKuw+$&t}GQuqMd%Z>0?t%&BM&Wo^4P^Y z)c6h^f2R>X8*}q|bblAF?@;%?2>$y+cMQbN{X$)^R>vtNq_5AB|0N5U*d^T?X9{xQnJYeU{ zoZL#obI;~Pp95f1`%X3D$Mh*4^?O?IT~7HqlWguezmg?Ybq|7>qQ(@pPHbE9V?f|( z+0xo!#m@Np9PljsyxBY-UA*{U*la#8Wz2sO|48_-5t8%_!n?S$zlGe+NA%?vmxjS- zHE5O3ZarU=X}$7>;Okp(UWXJxI%G_J-@IH;%5#Rt$(WUX?6*Ux!IRd$dLP6+SmPn= z8zjm4jGjN772R{FGkXwcNv8GBcZI#@Y2m{RNF_w8(Z%^A*!bS*!}s6sh*NnURytky humW;*g7R+&|Ledvc- + + + + BulletinBoardServerFrontend + + + + + + + + + diff --git a/bulletin-board-server-frontend/src/main.ts b/bulletin-board-server-frontend/src/main.ts new file mode 100644 index 0000000..a9ca1ca --- /dev/null +++ b/bulletin-board-server-frontend/src/main.ts @@ -0,0 +1,11 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule); diff --git a/bulletin-board-server-frontend/src/polyfills.ts b/bulletin-board-server-frontend/src/polyfills.ts new file mode 100644 index 0000000..7831e97 --- /dev/null +++ b/bulletin-board-server-frontend/src/polyfills.ts @@ -0,0 +1,72 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ +// import 'core-js/es6/symbol'; +// import 'core-js/es6/object'; +// import 'core-js/es6/function'; +// import 'core-js/es6/parse-int'; +// import 'core-js/es6/parse-float'; +// import 'core-js/es6/number'; +// import 'core-js/es6/math'; +// import 'core-js/es6/string'; +// import 'core-js/es6/date'; +// import 'core-js/es6/array'; +// import 'core-js/es6/regexp'; +// import 'core-js/es6/map'; +// import 'core-js/es6/weak-map'; +// import 'core-js/es6/set'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** Evergreen browsers require these. **/ +import 'core-js/es6/reflect'; +import 'core-js/es7/reflect'; + + +/** + * Required to support Web Animations `@angular/animation`. + * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation + **/ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + + + +/*************************************************************************************************** + * Zone JS is required by Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ + +/** + * Date, currency, decimal and percent pipes. + * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 + */ +// import 'intl'; // Run `npm install --save intl`. +/** + * Need to import at least one locale-data with intl. + */ +// import 'intl/locale-data/jsonp/en'; diff --git a/bulletin-board-server-frontend/src/proto/DKG.proto b/bulletin-board-server-frontend/src/proto/DKG.proto new file mode 120000 index 0000000..7e491e8 --- /dev/null +++ b/bulletin-board-server-frontend/src/proto/DKG.proto @@ -0,0 +1 @@ +../../../distributed-key-generation/src/main/proto/meerkat/DKG.proto \ No newline at end of file diff --git a/bulletin-board-server-frontend/src/proto/ballot_question_ui_element.proto b/bulletin-board-server-frontend/src/proto/ballot_question_ui_element.proto new file mode 120000 index 0000000..9fe7723 --- /dev/null +++ b/bulletin-board-server-frontend/src/proto/ballot_question_ui_element.proto @@ -0,0 +1 @@ +../../../meerkat-common/src/main/proto/meerkat/ballot_question_ui_element.proto \ No newline at end of file diff --git a/bulletin-board-server-frontend/src/proto/bulletin_board_api.proto b/bulletin-board-server-frontend/src/proto/bulletin_board_api.proto new file mode 120000 index 0000000..25931e9 --- /dev/null +++ b/bulletin-board-server-frontend/src/proto/bulletin_board_api.proto @@ -0,0 +1 @@ +../../../meerkat-common/src/main/proto/meerkat/bulletin_board_api.proto \ No newline at end of file diff --git a/bulletin-board-server-frontend/src/proto/bulletin_board_webapp.proto b/bulletin-board-server-frontend/src/proto/bulletin_board_webapp.proto new file mode 120000 index 0000000..de630ad --- /dev/null +++ b/bulletin-board-server-frontend/src/proto/bulletin_board_webapp.proto @@ -0,0 +1 @@ +../../../bulletin-board-server/src/main/proto/meerkat/bulletin_board_webapp.proto \ No newline at end of file diff --git a/bulletin-board-server-frontend/src/proto/comm.proto b/bulletin-board-server-frontend/src/proto/comm.proto new file mode 120000 index 0000000..7bbef0d --- /dev/null +++ b/bulletin-board-server-frontend/src/proto/comm.proto @@ -0,0 +1 @@ +../../../meerkat-common/src/main/proto/meerkat/comm.proto \ No newline at end of file diff --git a/bulletin-board-server-frontend/src/proto/concrete_crypto.proto b/bulletin-board-server-frontend/src/proto/concrete_crypto.proto new file mode 120000 index 0000000..86bc0c6 --- /dev/null +++ b/bulletin-board-server-frontend/src/proto/concrete_crypto.proto @@ -0,0 +1 @@ +../../../mixer/docs/concrete_crypto.proto \ No newline at end of file diff --git a/bulletin-board-server-frontend/src/proto/crypto.proto b/bulletin-board-server-frontend/src/proto/crypto.proto new file mode 120000 index 0000000..48ff272 --- /dev/null +++ b/bulletin-board-server-frontend/src/proto/crypto.proto @@ -0,0 +1 @@ +../../../mixer/docs/crypto.proto \ No newline at end of file diff --git a/bulletin-board-server-frontend/src/proto/mixing.proto b/bulletin-board-server-frontend/src/proto/mixing.proto new file mode 120000 index 0000000..803d618 --- /dev/null +++ b/bulletin-board-server-frontend/src/proto/mixing.proto @@ -0,0 +1 @@ +../../../mixer/src/main/proto/meerkat/mixing.proto \ No newline at end of file diff --git a/bulletin-board-server-frontend/src/proto/polling_station.proto b/bulletin-board-server-frontend/src/proto/polling_station.proto new file mode 120000 index 0000000..4cffd73 --- /dev/null +++ b/bulletin-board-server-frontend/src/proto/polling_station.proto @@ -0,0 +1 @@ +../../../scanner-api-common/src/main/proto/meerkat/polling_station.proto \ No newline at end of file diff --git a/bulletin-board-server-frontend/src/proto/voting.proto b/bulletin-board-server-frontend/src/proto/voting.proto new file mode 120000 index 0000000..ab5f0f6 --- /dev/null +++ b/bulletin-board-server-frontend/src/proto/voting.proto @@ -0,0 +1 @@ +../../../meerkat-common/src/main/proto/meerkat/voting.proto \ No newline at end of file diff --git a/bulletin-board-server-frontend/src/styles.css b/bulletin-board-server-frontend/src/styles.css new file mode 100644 index 0000000..90d4ee0 --- /dev/null +++ b/bulletin-board-server-frontend/src/styles.css @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/bulletin-board-server-frontend/src/test.ts b/bulletin-board-server-frontend/src/test.ts new file mode 100644 index 0000000..cd612ee --- /dev/null +++ b/bulletin-board-server-frontend/src/test.ts @@ -0,0 +1,32 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/long-stack-trace-zone'; +import 'zone.js/dist/proxy.js'; +import 'zone.js/dist/sync-test'; +import 'zone.js/dist/jasmine-patch'; +import 'zone.js/dist/async-test'; +import 'zone.js/dist/fake-async-test'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. +declare const __karma__: any; +declare const require: any; + +// Prevent Karma from running prematurely. +__karma__.loaded = function () {}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); +// Finally, start Karma to run the tests. +__karma__.start(); diff --git a/bulletin-board-server-frontend/src/tsconfig.app.json b/bulletin-board-server-frontend/src/tsconfig.app.json new file mode 100644 index 0000000..5e2507d --- /dev/null +++ b/bulletin-board-server-frontend/src/tsconfig.app.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "module": "es2015", + "baseUrl": "", + "types": [] + }, + "exclude": [ + "test.ts", + "**/*.spec.ts" + ] +} diff --git a/bulletin-board-server-frontend/src/tsconfig.spec.json b/bulletin-board-server-frontend/src/tsconfig.spec.json new file mode 100644 index 0000000..510e3f1 --- /dev/null +++ b/bulletin-board-server-frontend/src/tsconfig.spec.json @@ -0,0 +1,20 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/spec", + "module": "commonjs", + "target": "es5", + "baseUrl": "", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/bulletin-board-server-frontend/src/typings.d.ts b/bulletin-board-server-frontend/src/typings.d.ts new file mode 100644 index 0000000..ef5c7bd --- /dev/null +++ b/bulletin-board-server-frontend/src/typings.d.ts @@ -0,0 +1,5 @@ +/* SystemJS module definition */ +declare var module: NodeModule; +interface NodeModule { + id: string; +} diff --git a/bulletin-board-server-frontend/tsconfig.json b/bulletin-board-server-frontend/tsconfig.json new file mode 100644 index 0000000..a35a8ee --- /dev/null +++ b/bulletin-board-server-frontend/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "baseUrl": "src", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "es5", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2016", + "dom" + ] + } +} diff --git a/bulletin-board-server-frontend/tslint.json b/bulletin-board-server-frontend/tslint.json new file mode 100644 index 0000000..dd117b3 --- /dev/null +++ b/bulletin-board-server-frontend/tslint.json @@ -0,0 +1,135 @@ +{ + "rulesDirectory": [ + "node_modules/codelyzer" + ], + "rules": { + "arrow-return-shorthand": true, + "callable-types": true, + "class-name": true, + "comment-format": [ + true, + "check-space" + ], + "curly": true, + "eofline": true, + "forin": true, + "import-blacklist": [ + true, + "rxjs" + ], + "import-spacing": true, + "indent": [ + true, + "spaces" + ], + "interface-over-type-literal": true, + "label-position": true, + "max-line-length": [ + true, + 140 + ], + "member-access": false, + "member-ordering": [ + true, + "static-before-instance", + "variables-before-functions" + ], + "no-arg": true, + "no-bitwise": true, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-construct": true, + "no-debugger": true, + "no-duplicate-super": true, + "no-empty": false, + "no-empty-interface": true, + "no-eval": true, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-misused-new": true, + "no-non-null-assertion": true, + "no-shadowed-variable": true, + "no-string-literal": false, + "no-string-throw": true, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unnecessary-initializer": true, + "no-unused-expression": true, + "no-use-before-declare": true, + "no-var-keyword": true, + "object-literal-sort-keys": false, + "one-line": [ + true, + "check-open-brace", + "check-catch", + "check-else", + "check-whitespace" + ], + "prefer-const": true, + "quotemark": [ + true, + "single" + ], + "radix": true, + "semicolon": [ + "always" + ], + "triple-equals": [ + true, + "allow-null-check" + ], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + } + ], + "typeof-compare": true, + "unified-signatures": true, + "variable-name": false, + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type" + ], + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "kebab-case" + ], + "use-input-property-decorator": true, + "use-output-property-decorator": true, + "use-host-property-decorator": true, + "no-input-rename": true, + "no-output-rename": true, + "use-life-cycle-interface": true, + "use-pipe-transform-interface": true, + "component-class-suffix": true, + "directive-class-suffix": true, + "no-access-missing-member": true, + "templates-use-public": true, + "invoke-injectable": true + } +} diff --git a/bulletin-board-server/src/main/java/meerkat/bulletinboard/webapp/BulletinBoardWebApp.java b/bulletin-board-server/src/main/java/meerkat/bulletinboard/webapp/BulletinBoardWebApp.java index c88874f..6c8020e 100644 --- a/bulletin-board-server/src/main/java/meerkat/bulletinboard/webapp/BulletinBoardWebApp.java +++ b/bulletin-board-server/src/main/java/meerkat/bulletinboard/webapp/BulletinBoardWebApp.java @@ -3,6 +3,7 @@ package meerkat.bulletinboard.webapp; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; +import javax.servlet.http.HttpServletResponse; import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; @@ -88,10 +89,11 @@ public class BulletinBoardWebApp implements BulletinBoardServer, ServletContextL * @throws CommunicationException */ @Path(STATUS_PATH) - @POST + @GET @Consumes(MEDIATYPE_PROTOBUF) @Produces(MEDIATYPE_PROTOBUF) - public ServerStatus getStatus() throws CommunicationException { + public ServerStatus getStatus(@Context HttpServletResponse response) throws CommunicationException { + response.setHeader("Access-Control-Allow-Origin", "*"); // TODO: Remove return ServerStatus.newBuilder() .setName("Hello") .build();