From d966b33d09f255f374f6876be40e348ef3ba2be0 Mon Sep 17 00:00:00 2001 From: SeBsZ Date: Tue, 13 Mar 2018 15:40:12 +0100 Subject: [PATCH] Exposed descriptionHtml, recentChangesHtml, versionString and saleEnds in utils.py Added saleEnds to protobuf definition for app offers. --- googleplay.proto | 1 + gpapi/googleplay_pb2.py | 553 ++++++++++++++++++++-------------------- gpapi/utils.py | 8 +- 3 files changed, 287 insertions(+), 275 deletions(-) diff --git a/googleplay.proto b/googleplay.proto index 5a1585b..39d46dc 100644 --- a/googleplay.proto +++ b/googleplay.proto @@ -232,6 +232,7 @@ message Offer { optional SubscriptionTerms subscriptionTerms = 12; optional string formattedName = 13; optional string formattedDescription = 14; + optional string saleEnds = 31; } message OwnershipInfo { optional int64 initiationTimestampMsec = 1; diff --git a/gpapi/googleplay_pb2.py b/gpapi/googleplay_pb2.py index 99ad48d..0dea2e2 100644 --- a/gpapi/googleplay_pb2.py +++ b/gpapi/googleplay_pb2.py @@ -19,7 +19,7 @@ DESCRIPTOR = _descriptor.FileDescriptor( name='googleplay.proto', package='', syntax='proto2', - serialized_pb=_b('\n\x10googleplay.proto\"\x8b\x03\n\x16\x41ndroidAppDeliveryData\x12\x14\n\x0c\x64ownloadSize\x18\x01 \x01(\x03\x12\x11\n\tsignature\x18\x02 \x01(\t\x12\x13\n\x0b\x64ownloadUrl\x18\x03 \x01(\t\x12(\n\x0e\x61\x64\x64itionalFile\x18\x04 \x03(\x0b\x32\x10.AppFileMetadata\x12\'\n\x12\x64ownloadAuthCookie\x18\x05 \x03(\x0b\x32\x0b.HttpCookie\x12\x15\n\rforwardLocked\x18\x06 \x01(\x08\x12\x15\n\rrefundTimeout\x18\x07 \x01(\x03\x12\x17\n\x0fserverInitiated\x18\x08 \x01(\x08\x12%\n\x1dpostInstallRefundWindowMillis\x18\t \x01(\x03\x12\x1c\n\x14immediateStartNeeded\x18\n \x01(\x08\x12\'\n\tpatchData\x18\x0b \x01(\x0b\x32\x14.AndroidAppPatchData\x12+\n\x10\x65ncryptionParams\x18\x0c \x01(\x0b\x32\x11.EncryptionParams\"\x85\x01\n\x13\x41ndroidAppPatchData\x12\x17\n\x0f\x62\x61seVersionCode\x18\x01 \x01(\x05\x12\x15\n\rbaseSignature\x18\x02 \x01(\t\x12\x13\n\x0b\x64ownloadUrl\x18\x03 \x01(\t\x12\x13\n\x0bpatchFormat\x18\x04 \x01(\x05\x12\x14\n\x0cmaxPatchSize\x18\x05 \x01(\x03\"[\n\x0f\x41ppFileMetadata\x12\x10\n\x08\x66ileType\x18\x01 \x01(\x05\x12\x13\n\x0bversionCode\x18\x02 \x01(\x05\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x13\n\x0b\x64ownloadUrl\x18\x04 \x01(\t\"K\n\x10\x45ncryptionParams\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12\x15\n\rencryptionKey\x18\x02 \x01(\t\x12\x0f\n\x07hmacKey\x18\x03 \x01(\t\")\n\nHttpCookie\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\xad\x02\n\x07\x41\x64\x64ress\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x61\x64\x64ressLine1\x18\x02 \x01(\t\x12\x14\n\x0c\x61\x64\x64ressLine2\x18\x03 \x01(\t\x12\x0c\n\x04\x63ity\x18\x04 \x01(\t\x12\r\n\x05state\x18\x05 \x01(\t\x12\x12\n\npostalCode\x18\x06 \x01(\t\x12\x15\n\rpostalCountry\x18\x07 \x01(\t\x12\x19\n\x11\x64\x65pendentLocality\x18\x08 \x01(\t\x12\x13\n\x0bsortingCode\x18\t \x01(\t\x12\x14\n\x0clanguageCode\x18\n \x01(\t\x12\x13\n\x0bphoneNumber\x18\x0b \x01(\t\x12\x11\n\tisReduced\x18\x0c \x01(\x08\x12\x11\n\tfirstName\x18\r \x01(\t\x12\x10\n\x08lastName\x18\x0e \x01(\t\x12\r\n\x05\x65mail\x18\x0f \x01(\t\"J\n\nBookAuthor\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65precatedQuery\x18\x02 \x01(\t\x12\x15\n\x05\x64ocid\x18\x03 \x01(\x0b\x32\x06.Docid\"\xc3\x03\n\x0b\x42ookDetails\x12\x1d\n\x07subject\x18\x03 \x03(\x0b\x32\x0c.BookSubject\x12\x11\n\tpublisher\x18\x04 \x01(\t\x12\x17\n\x0fpublicationDate\x18\x05 \x01(\t\x12\x0c\n\x04isbn\x18\x06 \x01(\t\x12\x15\n\rnumberOfPages\x18\x07 \x01(\x05\x12\x10\n\x08subtitle\x18\x08 \x01(\t\x12\x1b\n\x06\x61uthor\x18\t \x03(\x0b\x32\x0b.BookAuthor\x12\x11\n\treaderUrl\x18\n \x01(\t\x12\x17\n\x0f\x64ownloadEpubUrl\x18\x0b \x01(\t\x12\x16\n\x0e\x64ownloadPdfUrl\x18\x0c \x01(\t\x12\x17\n\x0f\x61\x63sEpubTokenUrl\x18\r \x01(\t\x12\x16\n\x0e\x61\x63sPdfTokenUrl\x18\x0e \x01(\t\x12\x15\n\repubAvailable\x18\x0f \x01(\x08\x12\x14\n\x0cpdfAvailable\x18\x10 \x01(\x08\x12\x16\n\x0e\x61\x62outTheAuthor\x18\x11 \x01(\t\x12+\n\nidentifier\x18\x12 \x03(\n2\x17.BookDetails.Identifier\x1a.\n\nIdentifier\x12\x0c\n\x04type\x18\x13 \x01(\x05\x12\x12\n\nidentifier\x18\x14 \x01(\t\"=\n\x0b\x42ookSubject\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x11\n\tsubjectId\x18\x03 \x01(\t\"~\n\nBrowseLink\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x64\x61taUrl\x18\x03 \x01(\t\x12\x14\n\x04icon\x18\x05 \x01(\x0b\x32\x06.Image\x12;\n\x18unknownCategoryContainer\x18\x04 \x01(\x0b\x32\x19.UnknownCategoryContainer\"M\n\x18UnknownCategoryContainer\x12\x31\n\x13\x63\x61tegoryIdContainer\x18\x05 \x01(\x0b\x32\x14.CategoryIdContainer\")\n\x13\x43\x61tegoryIdContainer\x12\x12\n\ncategoryId\x18\x04 \x01(\t\"\xa6\x01\n\x0e\x42rowseResponse\x12\x13\n\x0b\x63ontentsUrl\x18\x01 \x01(\t\x12\x10\n\x08promoUrl\x18\x02 \x01(\t\x12\x1d\n\x08\x63\x61tegory\x18\x03 \x03(\x0b\x32\x0b.BrowseLink\x12\x1f\n\nbreadcrumb\x18\x04 \x03(\x0b\x32\x0b.BrowseLink\x12-\n\x11\x63\x61tegoryContainer\x18\t \x01(\x0b\x32\x12.CategoryContainer\"2\n\x11\x43\x61tegoryContainer\x12\x1d\n\x08\x63\x61tegory\x18\x04 \x03(\x0b\x32\x0b.BrowseLink\"\x8f\x02\n\x10\x41\x64\x64ressChallenge\x12\x1c\n\x14responseAddressParam\x18\x01 \x01(\t\x12\x1f\n\x17responseCheckboxesParam\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x17\n\x0f\x64\x65scriptionHtml\x18\x04 \x01(\t\x12\x1f\n\x08\x63heckbox\x18\x05 \x03(\x0b\x32\r.FormCheckbox\x12\x19\n\x07\x61\x64\x64ress\x18\x06 \x01(\x0b\x32\x08.Address\x12.\n\x0f\x65rrorInputField\x18\x07 \x03(\x0b\x32\x15.InputValidationError\x12\x11\n\terrorHtml\x18\x08 \x01(\t\x12\x15\n\rrequiredField\x18\t \x03(\x05\"\xef\x01\n\x17\x41uthenticationChallenge\x12\x1a\n\x12\x61uthenticationType\x18\x01 \x01(\x05\x12\'\n\x1fresponseAuthenticationTypeParam\x18\x02 \x01(\t\x12\x1f\n\x17responseRetryCountParam\x18\x03 \x01(\t\x12\x15\n\rpinHeaderText\x18\x04 \x01(\t\x12\x1e\n\x16pinDescriptionTextHtml\x18\x05 \x01(\t\x12\x16\n\x0egaiaHeaderText\x18\x06 \x01(\t\x12\x1f\n\x17gaiaDescriptionTextHtml\x18\x07 \x01(\t\"\x98\t\n\x0b\x42uyResponse\x12\x37\n\x10purchaseResponse\x18\x01 \x01(\x0b\x32\x1d.PurchaseNotificationResponse\x12/\n\x0c\x63heckoutinfo\x18\x02 \x01(\n2\x19.BuyResponse.CheckoutInfo\x12\x16\n\x0e\x63ontinueViaUrl\x18\x08 \x01(\t\x12\x19\n\x11purchaseStatusUrl\x18\t \x01(\t\x12\x19\n\x11\x63heckoutServiceId\x18\x0c \x01(\t\x12\x1d\n\x15\x63heckoutTokenRequired\x18\r \x01(\x08\x12\x17\n\x0f\x62\x61seCheckoutUrl\x18\x0e \x01(\t\x12\x17\n\x0ftosCheckboxHtml\x18% \x03(\t\x12\x1a\n\x12iabPermissionError\x18& \x01(\x05\x12\x37\n\x16purchaseStatusResponse\x18\' \x01(\x0b\x32\x17.PurchaseStatusResponse\x12\x16\n\x0epurchaseCookie\x18. \x01(\t\x12\x1d\n\tchallenge\x18\x31 \x01(\x0b\x32\n.Challenge\x12\x15\n\rdownloadToken\x18\x37 \x01(\t\x1a\xdc\x05\n\x0c\x43heckoutInfo\x12\x17\n\x04item\x18\x03 \x01(\x0b\x32\t.LineItem\x12\x1a\n\x07subItem\x18\x04 \x03(\x0b\x32\t.LineItem\x12@\n\x0e\x63heckoutoption\x18\x05 \x03(\n2(.BuyResponse.CheckoutInfo.CheckoutOption\x12\x1d\n\x15\x64\x65precatedCheckoutUrl\x18\n \x01(\t\x12\x18\n\x10\x61\x64\x64InstrumentUrl\x18\x0b \x01(\t\x12\x12\n\nfooterHtml\x18\x14 \x03(\t\x12 \n\x18\x65ligibleInstrumentFamily\x18\x1f \x03(\x05\x12\x14\n\x0c\x66ootnoteHtml\x18$ \x03(\t\x12\'\n\x12\x65ligibleInstrument\x18, \x03(\x0b\x32\x0b.Instrument\x1a\xa6\x03\n\x0e\x43heckoutOption\x12\x15\n\rformOfPayment\x18\x06 \x01(\t\x12\x1b\n\x13\x65ncodedAdjustedCart\x18\x07 \x01(\t\x12\x14\n\x0cinstrumentId\x18\x0f \x01(\t\x12\x17\n\x04item\x18\x10 \x03(\x0b\x32\t.LineItem\x12\x1a\n\x07subItem\x18\x11 \x03(\x0b\x32\t.LineItem\x12\x18\n\x05total\x18\x12 \x01(\x0b\x32\t.LineItem\x12\x12\n\nfooterHtml\x18\x13 \x03(\t\x12\x18\n\x10instrumentFamily\x18\x1d \x01(\x05\x12.\n&deprecatedInstrumentInapplicableReason\x18\x1e \x03(\x05\x12\x1a\n\x12selectedInstrument\x18 \x01(\x08\x12\x1a\n\x07summary\x18! \x01(\x0b\x32\t.LineItem\x12\x14\n\x0c\x66ootnoteHtml\x18# \x03(\t\x12\x1f\n\ninstrument\x18+ \x01(\x0b\x32\x0b.Instrument\x12\x16\n\x0epurchaseCookie\x18- \x01(\t\x12\x16\n\x0e\x64isabledReason\x18\x30 \x03(\t\"s\n\tChallenge\x12+\n\x10\x61\x64\x64ressChallenge\x18\x01 \x01(\x0b\x32\x11.AddressChallenge\x12\x39\n\x17\x61uthenticationChallenge\x18\x02 \x01(\x0b\x32\x18.AuthenticationChallenge\"F\n\x0c\x46ormCheckbox\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x0f\n\x07\x63hecked\x18\x02 \x01(\x08\x12\x10\n\x08required\x18\x03 \x01(\x08\"\\\n\x08LineItem\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x15\n\x05offer\x18\x03 \x01(\x0b\x32\x06.Offer\x12\x16\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x06.Money\"F\n\x05Money\x12\x0e\n\x06micros\x18\x01 \x01(\x03\x12\x14\n\x0c\x63urrencyCode\x18\x02 \x01(\t\x12\x17\n\x0f\x66ormattedAmount\x18\x03 \x01(\t\"\x80\x01\n\x1cPurchaseNotificationResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x1d\n\tdebugInfo\x18\x02 \x01(\x0b\x32\n.DebugInfo\x12\x1d\n\x15localizedErrorMessage\x18\x03 \x01(\t\x12\x12\n\npurchaseId\x18\x04 \x01(\t\"\xf9\x01\n\x16PurchaseStatusResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tstatusMsg\x18\x02 \x01(\t\x12\x13\n\x0bstatusTitle\x18\x03 \x01(\t\x12\x14\n\x0c\x62riefMessage\x18\x04 \x01(\t\x12\x0f\n\x07infoUrl\x18\x05 \x01(\t\x12%\n\rlibraryUpdate\x18\x06 \x01(\x0b\x32\x0e.LibraryUpdate\x12\'\n\x12rejectedInstrument\x18\x07 \x01(\x0b\x32\x0b.Instrument\x12\x30\n\x0f\x61ppDeliveryData\x18\x08 \x01(\x0b\x32\x17.AndroidAppDeliveryData\"D\n\x10\x44\x65liveryResponse\x12\x30\n\x0f\x61ppDeliveryData\x18\x02 \x01(\x0b\x32\x17.AndroidAppDeliveryData\"<\n\x05\x44ocid\x12\x14\n\x0c\x62\x61\x63kendDocid\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\x05\x12\x0f\n\x07\x62\x61\x63kend\x18\x03 \x01(\x05\">\n\x07Install\x12\x11\n\tandroidId\x18\x01 \x01(\x06\x12\x0f\n\x07version\x18\x02 \x01(\x05\x12\x0f\n\x07\x62undled\x18\x03 \x01(\x08\"\x80\x03\n\x05Offer\x12\x0e\n\x06micros\x18\x01 \x01(\x03\x12\x14\n\x0c\x63urrencyCode\x18\x02 \x01(\t\x12\x17\n\x0f\x66ormattedAmount\x18\x03 \x01(\t\x12\x1e\n\x0e\x63onvertedPrice\x18\x04 \x03(\x0b\x32\x06.Offer\x12\x1c\n\x14\x63heckoutFlowRequired\x18\x05 \x01(\x08\x12\x17\n\x0f\x66ullPriceMicros\x18\x06 \x01(\x03\x12\x1b\n\x13\x66ormattedFullAmount\x18\x07 \x01(\t\x12\x11\n\tofferType\x18\x08 \x01(\x05\x12!\n\x0brentalTerms\x18\t \x01(\x0b\x32\x0c.RentalTerms\x12\x12\n\nonSaleDate\x18\n \x01(\x03\x12\x16\n\x0epromotionLabel\x18\x0b \x03(\t\x12-\n\x11subscriptionTerms\x18\x0c \x01(\x0b\x32\x12.SubscriptionTerms\x12\x15\n\rformattedName\x18\r \x01(\t\x12\x1c\n\x14\x66ormattedDescription\x18\x0e \x01(\t\"\xb1\x01\n\rOwnershipInfo\x12\x1f\n\x17initiationTimestampMsec\x18\x01 \x01(\x03\x12\x1f\n\x17validUntilTimestampMsec\x18\x02 \x01(\x03\x12\x14\n\x0c\x61utoRenewing\x18\x03 \x01(\x08\x12\"\n\x1arefundTimeoutTimestampMsec\x18\x04 \x01(\x03\x12$\n\x1cpostDeliveryRefundWindowMsec\x18\x05 \x01(\x03\"H\n\x0bRentalTerms\x12\x1a\n\x12grantPeriodSeconds\x18\x01 \x01(\x05\x12\x1d\n\x15\x61\x63tivatePeriodSeconds\x18\x02 \x01(\x05\"[\n\x11SubscriptionTerms\x12$\n\x0frecurringPeriod\x18\x01 \x01(\x0b\x32\x0b.TimePeriod\x12 \n\x0btrialPeriod\x18\x02 \x01(\x0b\x32\x0b.TimePeriod\")\n\nTimePeriod\x12\x0c\n\x04unit\x18\x01 \x01(\x05\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"G\n\x12\x42illingAddressSpec\x12\x1a\n\x12\x62illingAddressType\x18\x01 \x01(\x05\x12\x15\n\rrequiredField\x18\x02 \x03(\x05\">\n\x19\x43\x61rrierBillingCredentials\x12\r\n\x05value\x18\x01 \x01(\t\x12\x12\n\nexpiration\x18\x02 \x01(\x03\"\xa9\x02\n\x18\x43\x61rrierBillingInstrument\x12\x15\n\rinstrumentKey\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63\x63ountType\x18\x02 \x01(\t\x12\x14\n\x0c\x63urrencyCode\x18\x03 \x01(\t\x12\x18\n\x10transactionLimit\x18\x04 \x01(\x03\x12\x1c\n\x14subscriberIdentifier\x18\x05 \x01(\t\x12\x39\n\x17\x65ncryptedSubscriberInfo\x18\x06 \x01(\x0b\x32\x18.EncryptedSubscriberInfo\x12/\n\x0b\x63redentials\x18\x07 \x01(\x0b\x32\x1a.CarrierBillingCredentials\x12\'\n\x12\x61\x63\x63\x65ptedCarrierTos\x18\x08 \x01(\x0b\x32\x0b.CarrierTos\"\xca\x01\n\x1e\x43\x61rrierBillingInstrumentStatus\x12\x1f\n\ncarrierTos\x18\x01 \x01(\x0b\x32\x0b.CarrierTos\x12\x1b\n\x13\x61ssociationRequired\x18\x02 \x01(\x08\x12\x18\n\x10passwordRequired\x18\x03 \x01(\x08\x12.\n\x15\x63\x61rrierPasswordPrompt\x18\x04 \x01(\x0b\x32\x0f.PasswordPrompt\x12\x12\n\napiVersion\x18\x05 \x01(\x05\x12\x0c\n\x04name\x18\x06 \x01(\t\"\x8e\x01\n\nCarrierTos\x12 \n\x06\x64\x63\x62Tos\x18\x01 \x01(\x0b\x32\x10.CarrierTosEntry\x12 \n\x06piiTos\x18\x02 \x01(\x0b\x32\x10.CarrierTosEntry\x12\x1d\n\x15needsDcbTosAcceptance\x18\x03 \x01(\x08\x12\x1d\n\x15needsPiiTosAcceptance\x18\x04 \x01(\x08\"/\n\x0f\x43\x61rrierTosEntry\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\"\xa2\x01\n\x14\x43reditCardInstrument\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x14\n\x0c\x65scrowHandle\x18\x02 \x01(\t\x12\x12\n\nlastDigits\x18\x03 \x01(\t\x12\x17\n\x0f\x65xpirationMonth\x18\x04 \x01(\x05\x12\x16\n\x0e\x65xpirationYear\x18\x05 \x01(\x05\x12!\n\x0e\x65scrowEfeParam\x18\x06 \x03(\x0b\x32\t.EfeParam\"&\n\x08\x45\x66\x65Param\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t\"@\n\x14InputValidationError\x12\x12\n\ninputField\x18\x01 \x01(\x05\x12\x14\n\x0c\x65rrorMessage\x18\x02 \x01(\t\"\xc2\x02\n\nInstrument\x12\x14\n\x0cinstrumentId\x18\x01 \x01(\t\x12 \n\x0e\x62illingAddress\x18\x02 \x01(\x0b\x32\x08.Address\x12)\n\ncreditCard\x18\x03 \x01(\x0b\x32\x15.CreditCardInstrument\x12\x31\n\x0e\x63\x61rrierBilling\x18\x04 \x01(\x0b\x32\x19.CarrierBillingInstrument\x12/\n\x12\x62illingAddressSpec\x18\x05 \x01(\x0b\x32\x13.BillingAddressSpec\x12\x18\n\x10instrumentFamily\x18\x06 \x01(\x05\x12=\n\x14\x63\x61rrierBillingStatus\x18\x07 \x01(\x0b\x32\x1f.CarrierBillingInstrumentStatus\x12\x14\n\x0c\x64isplayTitle\x18\x08 \x01(\t\";\n\x0ePasswordPrompt\x12\x0e\n\x06prompt\x18\x01 \x01(\t\x12\x19\n\x11\x66orgotPasswordUrl\x18\x02 \x01(\t\"\x92\x01\n\x11\x43ontainerMetadata\x12\x11\n\tbrowseUrl\x18\x01 \x01(\t\x12\x13\n\x0bnextPageUrl\x18\x02 \x01(\t\x12\x11\n\trelevance\x18\x03 \x01(\x01\x12\x18\n\x10\x65stimatedResults\x18\x04 \x01(\x03\x12\x17\n\x0f\x61nalyticsCookie\x18\x05 \x01(\t\x12\x0f\n\x07ordered\x18\x06 \x01(\x08\"i\n\tDebugInfo\x12\x0f\n\x07message\x18\x01 \x03(\t\x12!\n\x06timing\x18\x02 \x03(\n2\x11.DebugInfo.Timing\x1a(\n\x06Timing\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x10\n\x08timeInMs\x18\x04 \x01(\x01\"\'\n\x10\x42ulkDetailsEntry\x12\x13\n\x03\x64oc\x18\x01 \x01(\x0b\x32\x06.DocV2\"=\n\x12\x42ulkDetailsRequest\x12\r\n\x05\x64ocid\x18\x01 \x03(\t\x12\x18\n\x10includeChildDocs\x18\x02 \x01(\x08\"7\n\x13\x42ulkDetailsResponse\x12 \n\x05\x65ntry\x18\x01 \x03(\x0b\x32\x11.BulkDetailsEntry\"\xa0\x01\n\x0f\x44\x65tailsResponse\x12\x15\n\x05\x64ocV1\x18\x01 \x01(\x0b\x32\x06.DocV1\x12\x17\n\x0f\x61nalyticsCookie\x18\x02 \x01(\t\x12\x1b\n\nuserReview\x18\x03 \x01(\x0b\x32\x07.Review\x12\x15\n\x05\x64ocV2\x18\x04 \x01(\x0b\x32\x06.DocV2\x12\x12\n\nfooterHtml\x18\x05 \x01(\t\x12\x15\n\x05\x62\x61\x64ge\x18\x07 \x03(\x0b\x32\x06.Badge\"\'\n\x05\x42\x61\x64ge\x12\r\n\x05label\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x0b \x01(\t\"\xb5\x03\n\x18\x44\x65viceConfigurationProto\x12\x13\n\x0btouchScreen\x18\x01 \x01(\x05\x12\x10\n\x08keyboard\x18\x02 \x01(\x05\x12\x12\n\nnavigation\x18\x03 \x01(\x05\x12\x14\n\x0cscreenLayout\x18\x04 \x01(\x05\x12\x17\n\x0fhasHardKeyboard\x18\x05 \x01(\x08\x12\x1c\n\x14hasFiveWayNavigation\x18\x06 \x01(\x08\x12\x15\n\rscreenDensity\x18\x07 \x01(\x05\x12\x13\n\x0bglEsVersion\x18\x08 \x01(\x05\x12\x1b\n\x13systemSharedLibrary\x18\t \x03(\t\x12\x1e\n\x16systemAvailableFeature\x18\n \x03(\t\x12\x16\n\x0enativePlatform\x18\x0b \x03(\t\x12\x13\n\x0bscreenWidth\x18\x0c \x01(\x05\x12\x14\n\x0cscreenHeight\x18\r \x01(\x05\x12\x1d\n\x15systemSupportedLocale\x18\x0e \x03(\t\x12\x13\n\x0bglExtension\x18\x0f \x03(\t\x12\x13\n\x0b\x64\x65viceClass\x18\x10 \x01(\x05\x12\x1c\n\x14maxApkDownloadSizeMb\x18\x11 \x01(\x05\"\xff\x03\n\x08\x44ocument\x12\x15\n\x05\x64ocid\x18\x01 \x01(\x0b\x32\x06.Docid\x12\x1a\n\nfetchDocid\x18\x02 \x01(\x0b\x32\x06.Docid\x12\x1b\n\x0bsampleDocid\x18\x03 \x01(\x0b\x32\x06.Docid\x12\r\n\x05title\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x0f\n\x07snippet\x18\x06 \x03(\t\x12\x1f\n\x0fpriceDeprecated\x18\x07 \x01(\x0b\x32\x06.Offer\x12#\n\x0c\x61vailability\x18\t \x01(\x0b\x32\r.Availability\x12\x15\n\x05image\x18\n \x03(\x0b\x32\x06.Image\x12\x18\n\x05\x63hild\x18\x0b \x03(\x0b\x32\t.Document\x12)\n\x0f\x61ggregateRating\x18\r \x01(\x0b\x32\x10.AggregateRating\x12\x15\n\x05offer\x18\x0e \x03(\x0b\x32\x06.Offer\x12*\n\x11translatedSnippet\x18\x0f \x03(\x0b\x32\x0f.TranslatedText\x12)\n\x0f\x64ocumentVariant\x18\x10 \x03(\x0b\x32\x10.DocumentVariant\x12\x12\n\ncategoryId\x18\x11 \x03(\t\x12\x1d\n\ndecoration\x18\x12 \x03(\x0b\x32\t.Document\x12\x19\n\x06parent\x18\x13 \x03(\x0b\x32\t.Document\x12\x18\n\x10privacyPolicyUrl\x18\x14 \x01(\t\"\x81\x02\n\x0f\x44ocumentVariant\x12\x15\n\rvariationType\x18\x01 \x01(\x05\x12\x13\n\x04rule\x18\x02 \x01(\x0b\x32\x05.Rule\x12\r\n\x05title\x18\x03 \x01(\t\x12\x0f\n\x07snippet\x18\x04 \x03(\t\x12\x15\n\rrecentChanges\x18\x05 \x01(\t\x12(\n\x0f\x61utoTranslation\x18\x06 \x03(\x0b\x32\x0f.TranslatedText\x12\x15\n\x05offer\x18\x07 \x03(\x0b\x32\x06.Offer\x12\x11\n\tchannelId\x18\t \x01(\x03\x12\x18\n\x05\x63hild\x18\n \x03(\x0b\x32\t.Document\x12\x1d\n\ndecoration\x18\x0b \x03(\x0b\x32\t.Document\"\xc9\x02\n\x05Image\x12\x11\n\timageType\x18\x01 \x01(\x05\x12#\n\tdimension\x18\x02 \x01(\n2\x10.Image.Dimension\x12\x10\n\x08imageUrl\x18\x05 \x01(\t\x12\x18\n\x10\x61ltTextLocalized\x18\x06 \x01(\t\x12\x11\n\tsecureUrl\x18\x07 \x01(\t\x12\x1a\n\x12positionInSequence\x18\x08 \x01(\x05\x12\x1e\n\x16supportsFifeUrlOptions\x18\t \x01(\x08\x12!\n\x08\x63itation\x18\n \x01(\n2\x0f.Image.Citation\x12\r\n\x05\x63olor\x18\x0f \x01(\t\x1a*\n\tDimension\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0e\n\x06height\x18\x04 \x01(\x05\x1a/\n\x08\x43itation\x12\x16\n\x0etitleLocalized\x18\x0b \x01(\t\x12\x0b\n\x03url\x18\x0c \x01(\t\"J\n\x0eTranslatedText\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x14\n\x0csourceLocale\x18\x02 \x01(\t\x12\x14\n\x0ctargetLocale\x18\x03 \x01(\t\"i\n\x0bPlusOneData\x12\x11\n\tsetByUser\x18\x01 \x01(\x08\x12\r\n\x05total\x18\x02 \x01(\x03\x12\x14\n\x0c\x63irclesTotal\x18\x03 \x01(\x03\x12\"\n\rcirclesPeople\x18\x04 \x03(\x0b\x32\x0b.PlusPerson\":\n\nPlusPerson\x12\x13\n\x0b\x64isplayName\x18\x02 \x01(\t\x12\x17\n\x0fprofileImageUrl\x18\x04 \x01(\t\"c\n\x0c\x41lbumDetails\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1e\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\r.MusicDetails\x12%\n\rdisplayArtist\x18\x03 \x01(\x0b\x32\x0e.ArtistDetails\"\xb6\x04\n\nAppDetails\x12\x15\n\rdeveloperName\x18\x01 \x01(\t\x12\x1a\n\x12majorVersionNumber\x18\x02 \x01(\x05\x12\x13\n\x0bversionCode\x18\x03 \x01(\x05\x12\x15\n\rversionString\x18\x04 \x01(\t\x12\r\n\x05title\x18\x05 \x01(\t\x12\x13\n\x0b\x61ppCategory\x18\x07 \x03(\t\x12\x15\n\rcontentRating\x18\x08 \x01(\x05\x12\x18\n\x10installationSize\x18\t \x01(\x03\x12\x12\n\npermission\x18\n \x03(\t\x12\x16\n\x0e\x64\x65veloperEmail\x18\x0b \x01(\t\x12\x18\n\x10\x64\x65veloperWebsite\x18\x0c \x01(\t\x12\x14\n\x0cnumDownloads\x18\r \x01(\t\x12\x13\n\x0bpackageName\x18\x0e \x01(\t\x12\x19\n\x11recentChangesHtml\x18\x0f \x01(\t\x12\x12\n\nuploadDate\x18\x10 \x01(\t\x12\x1b\n\x04\x66ile\x18\x11 \x03(\x0b\x32\r.FileMetadata\x12\x0f\n\x07\x61ppType\x18\x12 \x01(\t\x12\x10\n\x08unstable\x18\x15 \x01(\x08\x12\x13\n\x0b\x63ontainsAds\x18\x1e \x01(\t\x12#\n\x0c\x64\x65pendencies\x18\" \x01(\x0b\x32\r.Dependencies\x12/\n\x12testingProgramInfo\x18# \x01(\x0b\x32\x13.TestingProgramInfo\x12)\n\x0f\x65\x61rlyAccessInfo\x18$ \x01(\x0b\x32\x10.EarlyAccessInfo\"e\n\x0c\x44\x65pendencies\x12\x10\n\x08unknown1\x18\x01 \x01(\x05\x12\x10\n\x08unknown2\x18\x02 \x01(\x03\x12\x1f\n\ndependency\x18\x03 \x03(\x0b\x32\x0b.Dependency\x12\x10\n\x08unknown3\x18\x04 \x01(\x05\"D\n\nDependency\x12\x13\n\x0bpackageName\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\x05\x12\x10\n\x08unknown4\x18\x04 \x01(\x05\"Z\n\x12TestingProgramInfo\x12\x12\n\nsubscribed\x18\x02 \x01(\x08\x12\x13\n\x0bsubscribed1\x18\x03 \x01(\x08\x12\x1b\n\x13testingProgramEmail\x18\x05 \x01(\t\" \n\x0f\x45\x61rlyAccessInfo\x12\r\n\x05\x65mail\x18\x03 \x01(\t\"^\n\rArtistDetails\x12\x12\n\ndetailsUrl\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12+\n\rexternalLinks\x18\x03 \x01(\x0b\x32\x14.ArtistExternalLinks\"b\n\x13\x41rtistExternalLinks\x12\x12\n\nwebsiteUrl\x18\x01 \x03(\t\x12\x1c\n\x14googlePlusProfileUrl\x18\x02 \x01(\t\x12\x19\n\x11youtubeChannelUrl\x18\x03 \x01(\t\"\xc6\x03\n\x0f\x44ocumentDetails\x12\x1f\n\nappDetails\x18\x01 \x01(\x0b\x32\x0b.AppDetails\x12#\n\x0c\x61lbumDetails\x18\x02 \x01(\x0b\x32\r.AlbumDetails\x12%\n\rartistDetails\x18\x03 \x01(\x0b\x32\x0e.ArtistDetails\x12!\n\x0bsongDetails\x18\x04 \x01(\x0b\x32\x0c.SongDetails\x12!\n\x0b\x62ookDetails\x18\x05 \x01(\x0b\x32\x0c.BookDetails\x12#\n\x0cvideoDetails\x18\x06 \x01(\x0b\x32\r.VideoDetails\x12\x31\n\x13subscriptionDetails\x18\x07 \x01(\x0b\x32\x14.SubscriptionDetails\x12)\n\x0fmagazineDetails\x18\x08 \x01(\x0b\x32\x10.MagazineDetails\x12%\n\rtvShowDetails\x18\t \x01(\x0b\x32\x0e.TvShowDetails\x12)\n\x0ftvSeasonDetails\x18\n \x01(\x0b\x32\x10.TvSeasonDetails\x12+\n\x10tvEpisodeDetails\x18\x0b \x01(\x0b\x32\x11.TvEpisodeDetails\"C\n\x0c\x46ileMetadata\x12\x10\n\x08\x66ileType\x18\x01 \x01(\x05\x12\x13\n\x0bversionCode\x18\x02 \x01(\x05\x12\x0c\n\x04size\x18\x03 \x01(\x03\"\x94\x01\n\x0fMagazineDetails\x12\x18\n\x10parentDetailsUrl\x18\x01 \x01(\t\x12)\n!deviceAvailabilityDescriptionHtml\x18\x02 \x01(\t\x12\x16\n\x0epsvDescription\x18\x03 \x01(\t\x12$\n\x1c\x64\x65liveryFrequencyDescription\x18\x04 \x01(\t\"\xbb\x01\n\x0cMusicDetails\x12\x11\n\tcensoring\x18\x01 \x01(\x05\x12\x13\n\x0b\x64urationSec\x18\x02 \x01(\x05\x12\x1b\n\x13originalReleaseDate\x18\x03 \x01(\t\x12\r\n\x05label\x18\x04 \x01(\t\x12\x1e\n\x06\x61rtist\x18\x05 \x03(\x0b\x32\x0e.ArtistDetails\x12\r\n\x05genre\x18\x06 \x03(\t\x12\x13\n\x0breleaseDate\x18\x07 \x01(\t\x12\x13\n\x0breleaseType\x18\x08 \x03(\x05\"\x9e\x01\n\x0bSongDetails\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1e\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\r.MusicDetails\x12\x11\n\talbumName\x18\x03 \x01(\t\x12\x13\n\x0btrackNumber\x18\x04 \x01(\x05\x12\x12\n\npreviewUrl\x18\x05 \x01(\t\x12%\n\rdisplayArtist\x18\x06 \x01(\x0b\x32\x0e.ArtistDetails\"1\n\x13SubscriptionDetails\x12\x1a\n\x12subscriptionPeriod\x18\x01 \x01(\x05\"e\n\x07Trailer\x12\x11\n\ttrailerId\x18\x01 \x01(\t\x12\r\n\x05title\x18\x02 \x01(\t\x12\x14\n\x0cthumbnailUrl\x18\x03 \x01(\t\x12\x10\n\x08watchUrl\x18\x04 \x01(\t\x12\x10\n\x08\x64uration\x18\x05 \x01(\t\"W\n\x10TvEpisodeDetails\x12\x18\n\x10parentDetailsUrl\x18\x01 \x01(\t\x12\x14\n\x0c\x65pisodeIndex\x18\x02 \x01(\x05\x12\x13\n\x0breleaseDate\x18\x03 \x01(\t\"j\n\x0fTvSeasonDetails\x12\x18\n\x10parentDetailsUrl\x18\x01 \x01(\t\x12\x13\n\x0bseasonIndex\x18\x02 \x01(\x05\x12\x13\n\x0breleaseDate\x18\x03 \x01(\t\x12\x13\n\x0b\x62roadcaster\x18\x04 \x01(\t\"]\n\rTvShowDetails\x12\x13\n\x0bseasonCount\x18\x01 \x01(\x05\x12\x11\n\tstartYear\x18\x02 \x01(\x05\x12\x0f\n\x07\x65ndYear\x18\x03 \x01(\x05\x12\x13\n\x0b\x62roadcaster\x18\x04 \x01(\t\"?\n\x0bVideoCredit\x12\x12\n\ncreditType\x18\x01 \x01(\x05\x12\x0e\n\x06\x63redit\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x03(\t\"\xdb\x01\n\x0cVideoDetails\x12\x1c\n\x06\x63redit\x18\x01 \x03(\x0b\x32\x0c.VideoCredit\x12\x10\n\x08\x64uration\x18\x02 \x01(\t\x12\x13\n\x0breleaseDate\x18\x03 \x01(\t\x12\x15\n\rcontentRating\x18\x04 \x01(\t\x12\r\n\x05likes\x18\x05 \x01(\x03\x12\x10\n\x08\x64islikes\x18\x06 \x01(\x03\x12\r\n\x05genre\x18\x07 \x03(\t\x12\x19\n\x07trailer\x18\x08 \x03(\x0b\x32\x08.Trailer\x12$\n\nrentalTerm\x18\t \x03(\x0b\x32\x10.VideoRentalTerm\"\xa0\x01\n\x0fVideoRentalTerm\x12\x11\n\tofferType\x18\x01 \x01(\x05\x12\x19\n\x11offerAbbreviation\x18\x02 \x01(\t\x12\x14\n\x0crentalHeader\x18\x03 \x01(\t\x12#\n\x04term\x18\x04 \x03(\n2\x15.VideoRentalTerm.Term\x1a$\n\x04Term\x12\x0e\n\x06header\x18\x05 \x01(\t\x12\x0c\n\x04\x62ody\x18\x06 \x01(\t\"\xf9\x01\n\x06\x42ucket\x12\x18\n\x08\x64ocument\x18\x01 \x03(\x0b\x32\x06.DocV1\x12\x13\n\x0bmultiCorpus\x18\x02 \x01(\x08\x12\r\n\x05title\x18\x03 \x01(\t\x12\x0f\n\x07iconUrl\x18\x04 \x01(\t\x12\x17\n\x0f\x66ullContentsUrl\x18\x05 \x01(\t\x12\x11\n\trelevance\x18\x06 \x01(\x01\x12\x18\n\x10\x65stimatedResults\x18\x07 \x01(\x03\x12\x17\n\x0f\x61nalyticsCookie\x18\x08 \x01(\t\x12\x1b\n\x13\x66ullContentsListUrl\x18\t \x01(\t\x12\x13\n\x0bnextPageUrl\x18\n \x01(\t\x12\x0f\n\x07ordered\x18\x0b \x01(\x08\"H\n\x0cListResponse\x12\x17\n\x06\x62ucket\x18\x01 \x03(\x0b\x32\x07.Bucket\x12\x1f\n\x07\x63luster\x18\x02 \x03(\x0b\x32\x0e.SearchCluster\"\x94\x03\n\x05\x44ocV1\x12\x1c\n\tfinskyDoc\x18\x01 \x01(\x0b\x32\t.Document\x12\r\n\x05\x64ocid\x18\x02 \x01(\t\x12\x12\n\ndetailsUrl\x18\x03 \x01(\t\x12\x12\n\nreviewsUrl\x18\x04 \x01(\t\x12\x16\n\x0erelatedListUrl\x18\x05 \x01(\t\x12\x15\n\rmoreByListUrl\x18\x06 \x01(\t\x12\x10\n\x08shareUrl\x18\x07 \x01(\t\x12\x0f\n\x07\x63reator\x18\x08 \x01(\t\x12!\n\x07\x64\x65tails\x18\t \x01(\x0b\x32\x10.DocumentDetails\x12\x17\n\x0f\x64\x65scriptionHtml\x18\n \x01(\t\x12\x18\n\x10relatedBrowseUrl\x18\x0b \x01(\t\x12\x17\n\x0fmoreByBrowseUrl\x18\x0c \x01(\t\x12\x15\n\rrelatedHeader\x18\r \x01(\t\x12\x14\n\x0cmoreByHeader\x18\x0e \x01(\t\x12\r\n\x05title\x18\x0f \x01(\t\x12!\n\x0bplusOneData\x18\x10 \x01(\x0b\x32\x0c.PlusOneData\x12\x16\n\x0ewarningMessage\x18\x11 \x01(\t\"\xc9\x04\n\x05\x44ocV2\x12\r\n\x05\x64ocid\x18\x01 \x01(\t\x12\x14\n\x0c\x62\x61\x63kendDocid\x18\x02 \x01(\t\x12\x0f\n\x07\x64ocType\x18\x03 \x01(\x05\x12\x11\n\tbackendId\x18\x04 \x01(\x05\x12\r\n\x05title\x18\x05 \x01(\t\x12\x0f\n\x07\x63reator\x18\x06 \x01(\t\x12\x17\n\x0f\x64\x65scriptionHtml\x18\x07 \x01(\t\x12\x15\n\x05offer\x18\x08 \x03(\x0b\x32\x06.Offer\x12#\n\x0c\x61vailability\x18\t \x01(\x0b\x32\r.Availability\x12\x15\n\x05image\x18\n \x03(\x0b\x32\x06.Image\x12\x15\n\x05\x63hild\x18\x0b \x03(\x0b\x32\x06.DocV2\x12-\n\x11\x63ontainerMetadata\x18\x0c \x01(\x0b\x32\x12.ContainerMetadata\x12!\n\x07\x64\x65tails\x18\r \x01(\x0b\x32\x10.DocumentDetails\x12)\n\x0f\x61ggregateRating\x18\x0e \x01(\x0b\x32\x10.AggregateRating\x12#\n\x0crelatedLinks\x18\x0f \x01(\x0b\x32\r.RelatedLinks\x12\x12\n\ndetailsUrl\x18\x10 \x01(\t\x12\x10\n\x08shareUrl\x18\x11 \x01(\t\x12\x12\n\nreviewsUrl\x18\x12 \x01(\t\x12\x12\n\nbackendUrl\x18\x13 \x01(\t\x12\x1a\n\x12purchaseDetailsUrl\x18\x14 \x01(\t\x12\x17\n\x0f\x64\x65tailsReusable\x18\x15 \x01(\x08\x12\x10\n\x08subtitle\x18\x16 \x01(\t\x12\x1d\n\tunknown25\x18\x19 \x01(\x0b\x32\n.Unknown25\")\n\tUnknown25\x12\x1c\n\x04item\x18\x02 \x03(\x0b\x32\x0e.Unknown25Item\"F\n\rUnknown25Item\x12\r\n\x05label\x18\x01 \x01(\t\x12&\n\tcontainer\x18\x03 \x01(\x0b\x32\x13.Unknown25Container\"#\n\x12Unknown25Container\x12\r\n\x05value\x18\x02 \x01(\t\"\xd9\x01\n\x0cRelatedLinks\x12\'\n\x08unknown1\x18\n \x01(\x0b\x32\x15.RelatedLinksUnknown1\x12\x18\n\x10privacyPolicyUrl\x18\x12 \x01(\t\x12&\n\x10youMightAlsoLike\x18\x18 \x01(\x0b\x32\x0c.RelatedLink\x12\x15\n\x05rated\x18\x1d \x01(\x0b\x32\x06.Rated\x12\"\n\x0crelatedLinks\x18\" \x03(\x0b\x32\x0c.RelatedLink\x12#\n\x0c\x63\x61tegoryInfo\x18\x35 \x01(\x0b\x32\r.CategoryInfo\"?\n\x14RelatedLinksUnknown1\x12\'\n\x08unknown2\x18\x02 \x01(\x0b\x32\x15.RelatedLinksUnknown2\"+\n\x14RelatedLinksUnknown2\x12\x13\n\x0bnextPageUrl\x18\x03 \x01(\t\"H\n\x05Rated\x12\r\n\x05label\x18\x01 \x01(\t\x12\x15\n\x05image\x18\x02 \x01(\x0b\x32\x06.Image\x12\x19\n\x11learnMoreHtmlLink\x18\x04 \x01(\t\"8\n\x0bRelatedLink\x12\r\n\x05label\x18\x01 \x01(\t\x12\x0c\n\x04url1\x18\x02 \x01(\t\x12\x0c\n\x04url2\x18\x03 \x01(\t\"4\n\x0c\x43\x61tegoryInfo\x12\x0f\n\x07\x61ppType\x18\x01 \x01(\t\x12\x13\n\x0b\x61ppCategory\x18\x02 \x01(\t\"\x99\x01\n\x17\x45ncryptedSubscriberInfo\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\t\x12\x14\n\x0c\x65ncryptedKey\x18\x02 \x01(\t\x12\x11\n\tsignature\x18\x03 \x01(\t\x12\x12\n\ninitVector\x18\x04 \x01(\t\x12\x18\n\x10googleKeyVersion\x18\x05 \x01(\x05\x12\x19\n\x11\x63\x61rrierKeyVersion\x18\x06 \x01(\x05\"\xbd\x03\n\x0c\x41vailability\x12\x13\n\x0brestriction\x18\x05 \x01(\x05\x12\x11\n\tofferType\x18\x06 \x01(\x05\x12\x13\n\x04rule\x18\x07 \x01(\x0b\x32\x05.Rule\x12X\n perdeviceavailabilityrestriction\x18\t \x03(\n2..Availability.PerDeviceAvailabilityRestriction\x12\x18\n\x10\x61vailableIfOwned\x18\r \x01(\x08\x12\x19\n\x07install\x18\x0e \x03(\x0b\x32\x08.Install\x12)\n\nfilterInfo\x18\x10 \x01(\x0b\x32\x15.FilterEvaluationInfo\x12%\n\rownershipInfo\x18\x11 \x01(\x0b\x32\x0e.OwnershipInfo\x1a\x8e\x01\n PerDeviceAvailabilityRestriction\x12\x11\n\tandroidId\x18\n \x01(\x06\x12\x19\n\x11\x64\x65viceRestriction\x18\x0b \x01(\x05\x12\x11\n\tchannelId\x18\x0c \x01(\x03\x12)\n\nfilterInfo\x18\x0f \x01(\x0b\x32\x15.FilterEvaluationInfo\"?\n\x14\x46ilterEvaluationInfo\x12\'\n\x0eruleEvaluation\x18\x01 \x03(\x0b\x32\x0f.RuleEvaluation\"\xd4\x01\n\x04Rule\x12\x0e\n\x06negate\x18\x01 \x01(\x08\x12\x10\n\x08operator\x18\x02 \x01(\x05\x12\x0b\n\x03key\x18\x03 \x01(\x05\x12\x11\n\tstringArg\x18\x04 \x03(\t\x12\x0f\n\x07longArg\x18\x05 \x03(\x03\x12\x11\n\tdoubleArg\x18\x06 \x03(\x01\x12\x16\n\x07subrule\x18\x07 \x03(\x0b\x32\x05.Rule\x12\x14\n\x0cresponseCode\x18\x08 \x01(\x05\x12\x0f\n\x07\x63omment\x18\t \x01(\t\x12\x15\n\rstringArgHash\x18\n \x03(\x06\x12\x10\n\x08\x63onstArg\x18\x0b \x03(\x05\"\x8d\x01\n\x0eRuleEvaluation\x12\x13\n\x04rule\x18\x01 \x01(\x0b\x32\x05.Rule\x12\x19\n\x11\x61\x63tualStringValue\x18\x02 \x03(\t\x12\x17\n\x0f\x61\x63tualLongValue\x18\x03 \x03(\x03\x12\x17\n\x0f\x61\x63tualBoolValue\x18\x04 \x03(\x08\x12\x19\n\x11\x61\x63tualDoubleValue\x18\x05 \x03(\x01\"v\n\x11LibraryAppDetails\x12\x17\n\x0f\x63\x65rtificateHash\x18\x02 \x01(\t\x12\"\n\x1arefundTimeoutTimestampMsec\x18\x03 \x01(\x03\x12$\n\x1cpostDeliveryRefundWindowMsec\x18\x04 \x01(\x03\"D\n\x13LibraryInAppDetails\x12\x1a\n\x12signedPurchaseData\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\t\"\xf0\x01\n\x0fLibraryMutation\x12\x15\n\x05\x64ocid\x18\x01 \x01(\x0b\x32\x06.Docid\x12\x11\n\tofferType\x18\x02 \x01(\x05\x12\x14\n\x0c\x64ocumentHash\x18\x03 \x01(\x03\x12\x0f\n\x07\x64\x65leted\x18\x04 \x01(\x08\x12&\n\nappDetails\x18\x05 \x01(\x0b\x32\x12.LibraryAppDetails\x12\x38\n\x13subscriptionDetails\x18\x06 \x01(\x0b\x32\x1b.LibrarySubscriptionDetails\x12*\n\x0cinAppDetails\x18\x07 \x01(\x0b\x32\x14.LibraryInAppDetails\"\x95\x01\n\x1aLibrarySubscriptionDetails\x12\x1f\n\x17initiationTimestampMsec\x18\x01 \x01(\x03\x12\x1f\n\x17validUntilTimestampMsec\x18\x02 \x01(\x03\x12\x14\n\x0c\x61utoRenewing\x18\x03 \x01(\x08\x12\x1f\n\x17trialUntilTimestampMsec\x18\x04 \x01(\x03\"\x8c\x01\n\rLibraryUpdate\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0e\n\x06\x63orpus\x18\x02 \x01(\x05\x12\x13\n\x0bserverToken\x18\x03 \x01(\x0c\x12\"\n\x08mutation\x18\x04 \x03(\x0b\x32\x10.LibraryMutation\x12\x0f\n\x07hasMore\x18\x05 \x01(\x08\x12\x11\n\tlibraryId\x18\x06 \x01(\t\"B\n\x1a\x41ndroidAppNotificationData\x12\x13\n\x0bversionCode\x18\x01 \x01(\x05\x12\x0f\n\x07\x61ssetId\x18\x02 \x01(\t\"M\n\x15InAppNotificationData\x12\x17\n\x0f\x63heckoutOrderId\x18\x01 \x01(\t\x12\x1b\n\x13inAppNotificationId\x18\x02 \x01(\t\"#\n\x10LibraryDirtyData\x12\x0f\n\x07\x62\x61\x63kend\x18\x01 \x01(\x05\"\x97\x04\n\x0cNotification\x12\x18\n\x10notificationType\x18\x01 \x01(\x05\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\x12\x15\n\x05\x64ocid\x18\x04 \x01(\x0b\x32\x06.Docid\x12\x10\n\x08\x64ocTitle\x18\x05 \x01(\t\x12\x11\n\tuserEmail\x18\x06 \x01(\t\x12,\n\x07\x61ppData\x18\x07 \x01(\x0b\x32\x1b.AndroidAppNotificationData\x12\x30\n\x0f\x61ppDeliveryData\x18\x08 \x01(\x0b\x32\x17.AndroidAppDeliveryData\x12\x31\n\x13purchaseRemovalData\x18\t \x01(\x0b\x32\x14.PurchaseRemovalData\x12\x33\n\x14userNotificationData\x18\n \x01(\x0b\x32\x15.UserNotificationData\x12\x35\n\x15inAppNotificationData\x18\x0b \x01(\x0b\x32\x16.InAppNotificationData\x12\x33\n\x14purchaseDeclinedData\x18\x0c \x01(\x0b\x32\x15.PurchaseDeclinedData\x12\x16\n\x0enotificationId\x18\r \x01(\t\x12%\n\rlibraryUpdate\x18\x0e \x01(\x0b\x32\x0e.LibraryUpdate\x12+\n\x10libraryDirtyData\x18\x0f \x01(\x0b\x32\x11.LibraryDirtyData\"@\n\x14PurchaseDeclinedData\x12\x0e\n\x06reason\x18\x01 \x01(\x05\x12\x18\n\x10showNotification\x18\x02 \x01(\x08\"(\n\x13PurchaseRemovalData\x12\x11\n\tmalicious\x18\x01 \x01(\x08\"\x88\x01\n\x14UserNotificationData\x12\x19\n\x11notificationTitle\x18\x01 \x01(\t\x12\x18\n\x10notificationText\x18\x02 \x01(\t\x12\x12\n\ntickerText\x18\x03 \x01(\t\x12\x13\n\x0b\x64ialogTitle\x18\x04 \x01(\t\x12\x12\n\ndialogText\x18\x05 \x01(\t\"\xa7\x02\n\x0f\x41ggregateRating\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x12\n\nstarRating\x18\x02 \x01(\x02\x12\x14\n\x0cratingsCount\x18\x03 \x01(\x04\x12\x16\n\x0eoneStarRatings\x18\x04 \x01(\x04\x12\x16\n\x0etwoStarRatings\x18\x05 \x01(\x04\x12\x18\n\x10threeStarRatings\x18\x06 \x01(\x04\x12\x17\n\x0f\x66ourStarRatings\x18\x07 \x01(\x04\x12\x17\n\x0f\x66iveStarRatings\x18\x08 \x01(\x04\x12\x15\n\rthumbsUpCount\x18\t \x01(\x04\x12\x17\n\x0fthumbsDownCount\x18\n \x01(\x04\x12\x14\n\x0c\x63ommentCount\x18\x0b \x01(\x04\x12\x1a\n\x12\x62\x61yesianMeanRating\x18\x0c \x01(\x01\"\x8f\x05\n\x07Payload\x12#\n\x0clistResponse\x18\x01 \x01(\x0b\x32\r.ListResponse\x12)\n\x0f\x64\x65tailsResponse\x18\x02 \x01(\x0b\x32\x10.DetailsResponse\x12\'\n\x0ereviewResponse\x18\x03 \x01(\x0b\x32\x0f.ReviewResponse\x12!\n\x0b\x62uyResponse\x18\x04 \x01(\x0b\x32\x0c.BuyResponse\x12\'\n\x0esearchResponse\x18\x05 \x01(\x0b\x32\x0f.SearchResponse\x12\'\n\x0e\x62rowseResponse\x18\x07 \x01(\x0b\x32\x0f.BrowseResponse\x12\x37\n\x16purchaseStatusResponse\x18\x08 \x01(\x0b\x32\x17.PurchaseStatusResponse\x12\x13\n\x0blogResponse\x18\n \x01(\t\x12\x31\n\x13\x62ulkDetailsResponse\x18\x13 \x01(\x0b\x32\x14.BulkDetailsResponse\x12+\n\x10\x64\x65liveryResponse\x18\x15 \x01(\x0b\x32\x11.DeliveryResponse\x12?\n\x1auploadDeviceConfigResponse\x18\x19 \x01(\x0b\x32\x1b.UploadDeviceConfigResponse\x12\x37\n\x16\x61ndroidCheckinResponse\x18\x1a \x01(\x0b\x32\x17.AndroidCheckinResponse\x12\x35\n\x15searchSuggestResponse\x18( \x01(\x0b\x32\x16.SearchSuggestResponse\x12\x37\n\x16testingProgramResponse\x18P \x01(\x0b\x32\x17.TestingProgramResponse\"g\n\x08PreFetch\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\"\n\x08response\x18\x02 \x01(\x0b\x32\x10.ResponseWrapper\x12\x0c\n\x04\x65tag\x18\x03 \x01(\t\x12\x0b\n\x03ttl\x18\x04 \x01(\x03\x12\x0f\n\x07softTtl\x18\x05 \x01(\x03\"\x91\x01\n\x0fResponseWrapper\x12\x19\n\x07payload\x18\x01 \x01(\x0b\x32\x08.Payload\x12!\n\x08\x63ommands\x18\x02 \x01(\x0b\x32\x0f.ServerCommands\x12\x1b\n\x08preFetch\x18\x03 \x03(\x0b\x32\t.PreFetch\x12#\n\x0cnotification\x18\x04 \x03(\x0b\x32\r.Notification\"]\n\x0eServerCommands\x12\x12\n\nclearCache\x18\x01 \x01(\x08\x12\x1b\n\x13\x64isplayErrorMessage\x18\x02 \x01(\t\x12\x1a\n\x12logErrorStacktrace\x18\x03 \x01(\t\"D\n\x12GetReviewsResponse\x12\x17\n\x06review\x18\x01 \x03(\x0b\x32\x07.Review\x12\x15\n\rmatchingCount\x18\x02 \x01(\x03\"\xa7\x02\n\x06Review\x12\x12\n\nauthorName\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0e\n\x06source\x18\x03 \x01(\t\x12\x17\n\x0f\x64ocumentVersion\x18\x04 \x01(\t\x12\x15\n\rtimestampMsec\x18\x05 \x01(\x03\x12\x12\n\nstarRating\x18\x06 \x01(\x05\x12\r\n\x05title\x18\x07 \x01(\t\x12\x0f\n\x07\x63omment\x18\x08 \x01(\t\x12\x11\n\tcommentId\x18\t \x01(\t\x12\x12\n\ndeviceName\x18\x13 \x01(\t\x12\x11\n\treplyText\x18\x1d \x01(\t\x12\x1a\n\x12replyTimestampMsec\x18\x1e \x01(\x03\x12\x17\n\x06\x61uthor\x18\x1f \x01(\x0b\x32\x07.Author\x12\x19\n\x07\x61uthor2\x18! \x01(\x0b\x32\x08.Author2\"-\n\x06\x41uthor\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x15\n\x04urls\x18\x05 \x01(\x0b\x32\x07.Avatar\"\xae\x01\n\x07\x41uthor2\x12\x16\n\x0epersonIdString\x18\x01 \x01(\t\x12\x10\n\x08personId\x18\x02 \x01(\t\x12\x10\n\x08unknown1\x18\x03 \x01(\x05\x12\x10\n\x08unknown2\x18\x04 \x01(\x05\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x15\n\x04urls\x18\n \x01(\x0b\x32\x07.Avatar\x12\x15\n\rgooglePlusUrl\x18\x13 \x01(\t\x12\x19\n\x11googlePlusTagline\x18\x16 \x01(\t\"^\n\x06\x41vatar\x12\x10\n\x08unknown1\x18\x01 \x01(\x05\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x11\n\tsecureUrl\x18\x07 \x01(\t\x12\x10\n\x08unknown2\x18\t \x01(\x08\x12\x10\n\x08unknown3\x18\x16 \x01(\x08\"l\n\x0eReviewResponse\x12(\n\x0bgetResponse\x18\x01 \x01(\x0b\x32\x13.GetReviewsResponse\x12\x13\n\x0bnextPageUrl\x18\x02 \x01(\t\x12\x1b\n\nuserReview\x18\x03 \x01(\x0b\x32\x07.Review\"g\n\rRelatedSearch\x12\x11\n\tsearchUrl\x18\x01 \x01(\t\x12\x0e\n\x06header\x18\x02 \x01(\t\x12\x11\n\tbackendId\x18\x03 \x01(\x05\x12\x0f\n\x07\x64ocType\x18\x04 \x01(\x05\x12\x0f\n\x07\x63urrent\x18\x05 \x01(\x08\"\xc1\x01\n\x0eSearchResponse\x12\x15\n\roriginalQuery\x18\x01 \x01(\t\x12\x16\n\x0esuggestedQuery\x18\x02 \x01(\t\x12\x16\n\x0e\x61ggregateQuery\x18\x03 \x01(\x08\x12\x17\n\x06\x62ucket\x18\x04 \x03(\x0b\x32\x07.Bucket\x12\x13\n\x03\x64oc\x18\x05 \x03(\x0b\x32\x06.DocV2\x12%\n\rrelatedSearch\x18\x06 \x03(\x0b\x32\x0e.RelatedSearch\x12\x13\n\x0bnextPageUrl\x18\n \x01(\t\"\xa7\x01\n\x1aUserProfileResponseWrapper\x12$\n\x07payload\x18\x01 \x01(\x0b\x32\x13.UserProfilePayload\x12!\n\x08\x63ommands\x18\x02 \x01(\x0b\x32\x0f.ServerCommands\x12\x1b\n\x08preFetch\x18\x03 \x03(\x0b\x32\t.PreFetch\x12#\n\x0cnotification\x18\x04 \x03(\x0b\x32\r.Notification\"<\n\x12UserProfilePayload\x12&\n\x08response\x18\x05 \x01(\x0b\x32\x14.UserProfileResponse\"*\n\x13UserProfileResponse\x12\x13\n\x03\x64oc\x18\x01 \x03(\x0b\x32\x06.DocV2\";\n\x15SearchSuggestResponse\x12\"\n\x05\x65ntry\x18\x01 \x03(\x0b\x32\x13.SearchSuggestEntry\"\x9e\x02\n\x12SearchSuggestEntry\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x16\n\x0esuggestedQuery\x18\x02 \x01(\t\x12:\n\x0eimageContainer\x18\x05 \x01(\x0b\x32\".SearchSuggestEntry.ImageContainer\x12\r\n\x05title\x18\x06 \x01(\t\x12\x46\n\x14packageNameContainer\x18\x08 \x01(\x0b\x32(.SearchSuggestEntry.PackageNameContainer\x1a\"\n\x0eImageContainer\x12\x10\n\x08imageUrl\x18\x05 \x01(\t\x1a+\n\x14PackageNameContainer\x12\x13\n\x0bpackageName\x18\x01 \x01(\t\"?\n\x16TestingProgramResponse\x12%\n\x06result\x18\x02 \x01(\x0b\x32\x15.TestingProgramResult\"?\n\x14TestingProgramResult\x12\'\n\x07\x64\x65tails\x18\x04 \x01(\x0b\x32\x16.TestingProgramDetails\"H\n\x15TestingProgramDetails\x12\r\n\x05\x66lag1\x18\x02 \x01(\x08\x12\n\n\x02id\x18\x03 \x01(\x03\x12\x14\n\x0cunsubscribed\x18\x04 \x01(\x08\"B\n\nLogRequest\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\x12!\n\x19\x64ownloadConfirmationQuery\x18\x02 \x01(\t\"?\n\x15TestingProgramRequest\x12\x13\n\x0bpackageName\x18\x01 \x01(\t\x12\x11\n\tsubscribe\x18\x02 \x01(\x08\"\x84\x01\n\x19UploadDeviceConfigRequest\x12\x36\n\x13\x64\x65viceConfiguration\x18\x01 \x01(\x0b\x32\x19.DeviceConfigurationProto\x12\x14\n\x0cmanufacturer\x18\x02 \x01(\t\x12\x19\n\x11gcmRegistrationId\x18\x03 \x01(\t\"=\n\x1aUploadDeviceConfigResponse\x12\x1f\n\x17uploadDeviceConfigToken\x18\x01 \x01(\t\"\xe7\x03\n\x15\x41ndroidCheckinRequest\x12\x0c\n\x04imei\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x03\x12\x0e\n\x06\x64igest\x18\x03 \x01(\t\x12%\n\x07\x63heckin\x18\x04 \x01(\x0b\x32\x14.AndroidCheckinProto\x12\x14\n\x0c\x64\x65siredBuild\x18\x05 \x01(\t\x12\x0e\n\x06locale\x18\x06 \x01(\t\x12\x11\n\tloggingId\x18\x07 \x01(\x03\x12\x15\n\rmarketCheckin\x18\x08 \x01(\t\x12\x0f\n\x07macAddr\x18\t \x03(\t\x12\x0c\n\x04meid\x18\n \x01(\t\x12\x15\n\raccountCookie\x18\x0b \x03(\t\x12\x10\n\x08timeZone\x18\x0c \x01(\t\x12\x15\n\rsecurityToken\x18\r \x01(\x06\x12\x0f\n\x07version\x18\x0e \x01(\x05\x12\x0f\n\x07otaCert\x18\x0f \x03(\t\x12\x14\n\x0cserialNumber\x18\x10 \x01(\t\x12\x0b\n\x03\x65sn\x18\x11 \x01(\t\x12\x36\n\x13\x64\x65viceConfiguration\x18\x12 \x01(\x0b\x32\x19.DeviceConfigurationProto\x12\x13\n\x0bmacAddrType\x18\x13 \x03(\t\x12\x10\n\x08\x66ragment\x18\x14 \x01(\x05\x12\x10\n\x08userName\x18\x15 \x01(\t\x12\x18\n\x10userSerialNumber\x18\x16 \x01(\x05\"\xfd\x01\n\x16\x41ndroidCheckinResponse\x12\x0f\n\x07statsOk\x18\x01 \x01(\x08\x12#\n\x06intent\x18\x02 \x03(\x0b\x32\x13.AndroidIntentProto\x12\x10\n\x08timeMsec\x18\x03 \x01(\x03\x12\x0e\n\x06\x64igest\x18\x04 \x01(\t\x12\"\n\x07setting\x18\x05 \x03(\x0b\x32\x11.GservicesSetting\x12\x10\n\x08marketOk\x18\x06 \x01(\x08\x12\x11\n\tandroidId\x18\x07 \x01(\x06\x12\x15\n\rsecurityToken\x18\x08 \x01(\x06\x12\x14\n\x0csettingsDiff\x18\t \x01(\x08\x12\x15\n\rdeleteSetting\x18\n \x03(\t\"/\n\x10GservicesSetting\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x94\x02\n\x11\x41ndroidBuildProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07product\x18\x02 \x01(\t\x12\x0f\n\x07\x63\x61rrier\x18\x03 \x01(\t\x12\r\n\x05radio\x18\x04 \x01(\t\x12\x12\n\nbootloader\x18\x05 \x01(\t\x12\x0e\n\x06\x63lient\x18\x06 \x01(\t\x12\x11\n\ttimestamp\x18\x07 \x01(\x03\x12\x16\n\x0egoogleServices\x18\x08 \x01(\x05\x12\x0e\n\x06\x64\x65vice\x18\t \x01(\t\x12\x12\n\nsdkVersion\x18\n \x01(\x05\x12\r\n\x05model\x18\x0b \x01(\t\x12\x14\n\x0cmanufacturer\x18\x0c \x01(\t\x12\x14\n\x0c\x62uildProduct\x18\r \x01(\t\x12\x14\n\x0cotaInstalled\x18\x0e \x01(\x08\"\x82\x02\n\x13\x41ndroidCheckinProto\x12!\n\x05\x62uild\x18\x01 \x01(\x0b\x32\x12.AndroidBuildProto\x12\x17\n\x0flastCheckinMsec\x18\x02 \x01(\x03\x12!\n\x05\x65vent\x18\x03 \x03(\x0b\x32\x12.AndroidEventProto\x12$\n\x04stat\x18\x04 \x03(\x0b\x32\x16.AndroidStatisticProto\x12\x16\n\x0erequestedGroup\x18\x05 \x03(\t\x12\x14\n\x0c\x63\x65llOperator\x18\x06 \x01(\t\x12\x13\n\x0bsimOperator\x18\x07 \x01(\t\x12\x0f\n\x07roaming\x18\x08 \x01(\t\x12\x12\n\nuserNumber\x18\t \x01(\x05\"A\n\x11\x41ndroidEventProto\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x10\n\x08timeMsec\x18\x03 \x01(\x03\"\xaa\x01\n\x12\x41ndroidIntentProto\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\x12\x0f\n\x07\x64\x61taUri\x18\x02 \x01(\t\x12\x10\n\x08mimeType\x18\x03 \x01(\t\x12\x11\n\tjavaClass\x18\x04 \x01(\t\x12(\n\x05\x65xtra\x18\x05 \x03(\n2\x19.AndroidIntentProto.Extra\x1a$\n\x05\x45xtra\x12\x0c\n\x04name\x18\x06 \x01(\t\x12\r\n\x05value\x18\x07 \x01(\t\"@\n\x15\x41ndroidStatisticProto\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12\x0b\n\x03sum\x18\x03 \x01(\x02\"v\n\x12\x43lientLibraryState\x12\x0e\n\x06\x63orpus\x18\x01 \x01(\x05\x12\x13\n\x0bserverToken\x18\x02 \x01(\x0c\x12\x13\n\x0bhashCodeSum\x18\x03 \x01(\x03\x12\x13\n\x0blibrarySize\x18\x04 \x01(\x05\x12\x11\n\tlibraryId\x18\x05 \x01(\t\"\xe2\x01\n\x15\x41ndroidDataUsageProto\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12\x19\n\x11\x63urrentReportMsec\x18\x02 \x01(\x03\x12\x39\n\x17keyToPackageNameMapping\x18\x03 \x03(\x0b\x32\x18.KeyToPackageNameMapping\x12\x31\n\x13payloadLevelAppStat\x18\x04 \x03(\x0b\x32\x14.PayloadLevelAppStat\x12/\n\x12ipLayerNetworkStat\x18\x05 \x03(\x0b\x32\x13.IpLayerNetworkStat\"n\n\x17\x41ndroidUsageStatsReport\x12\x11\n\tandroidId\x18\x01 \x01(\x03\x12\x11\n\tloggingId\x18\x02 \x01(\x03\x12-\n\nusageStats\x18\x03 \x01(\x0b\x32\x19.UsageStatsExtensionProto\"}\n\tAppBucket\x12\x17\n\x0f\x62ucketStartMsec\x18\x01 \x01(\x03\x12\x1a\n\x12\x62ucketDurationMsec\x18\x02 \x01(\x03\x12#\n\x0cstatCounters\x18\x03 \x03(\x0b\x32\r.StatCounters\x12\x16\n\x0eoperationCount\x18\x04 \x01(\x03\"-\n\x0b\x43ounterData\x12\r\n\x05\x62ytes\x18\x01 \x01(\x03\x12\x0f\n\x07packets\x18\x02 \x01(\x03\"b\n\x0eIpLayerAppStat\x12\x12\n\npackageKey\x18\x01 \x01(\x05\x12\x16\n\x0e\x61pplicationTag\x18\x02 \x01(\x05\x12$\n\x10ipLayerAppBucket\x18\x03 \x03(\x0b\x32\n.AppBucket\"\x8f\x01\n\x14IpLayerNetworkBucket\x12\x17\n\x0f\x62ucketStartMsec\x18\x01 \x01(\x03\x12\x1a\n\x12\x62ucketDurationMsec\x18\x02 \x01(\x03\x12#\n\x0cstatCounters\x18\x03 \x03(\x0b\x32\r.StatCounters\x12\x1d\n\x15networkActiveDuration\x18\x04 \x01(\x03\"\x98\x01\n\x12IpLayerNetworkStat\x12\x16\n\x0enetworkDetails\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\x05\x12\x33\n\x14ipLayerNetworkBucket\x18\x03 \x03(\x0b\x32\x15.IpLayerNetworkBucket\x12\'\n\x0eipLayerAppStat\x18\x04 \x03(\x0b\x32\x0f.IpLayerAppStat\"g\n\x17KeyToPackageNameMapping\x12\x12\n\npackageKey\x18\x01 \x01(\x05\x12\x0f\n\x07uidName\x18\x02 \x01(\t\x12\'\n\x11sharedPackageList\x18\x03 \x03(\x0b\x32\x0c.PackageInfo\"3\n\x0bPackageInfo\x12\x0f\n\x07pkgName\x18\x01 \x01(\t\x12\x13\n\x0bversionCode\x18\x02 \x01(\x05\"l\n\x13PayloadLevelAppStat\x12\x12\n\npackageKey\x18\x01 \x01(\x05\x12\x16\n\x0e\x61pplicationTag\x18\x02 \x01(\x05\x12)\n\x15payloadLevelAppBucket\x18\x03 \x03(\x0b\x32\n.AppBucket\"h\n\x0cStatCounters\x12\x14\n\x0cnetworkProto\x18\x01 \x01(\x05\x12\x11\n\tdirection\x18\x02 \x01(\x05\x12!\n\x0b\x63ounterData\x18\x03 \x01(\x0b\x32\x0c.CounterData\x12\x0c\n\x04\x66gBg\x18\x04 \x01(\x05\"E\n\x18UsageStatsExtensionProto\x12)\n\tdataUsage\x18\x01 \x01(\x0b\x32\x16.AndroidDataUsageProto\"l\n\rSearchCluster\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0c\n\x04int1\x18\x03 \x01(\x03\x12\x0c\n\x04int2\x18\x04 \x01(\x03\x12\x10\n\x08\x63\x61tegory\x18\x05 \x01(\t\x12\x13\n\x03\x64oc\x18\x0b \x03(\x0b\x32\x06.DocV2') + serialized_pb=_b('\n\x10googleplay.proto\"\x8b\x03\n\x16\x41ndroidAppDeliveryData\x12\x14\n\x0c\x64ownloadSize\x18\x01 \x01(\x03\x12\x11\n\tsignature\x18\x02 \x01(\t\x12\x13\n\x0b\x64ownloadUrl\x18\x03 \x01(\t\x12(\n\x0e\x61\x64\x64itionalFile\x18\x04 \x03(\x0b\x32\x10.AppFileMetadata\x12\'\n\x12\x64ownloadAuthCookie\x18\x05 \x03(\x0b\x32\x0b.HttpCookie\x12\x15\n\rforwardLocked\x18\x06 \x01(\x08\x12\x15\n\rrefundTimeout\x18\x07 \x01(\x03\x12\x17\n\x0fserverInitiated\x18\x08 \x01(\x08\x12%\n\x1dpostInstallRefundWindowMillis\x18\t \x01(\x03\x12\x1c\n\x14immediateStartNeeded\x18\n \x01(\x08\x12\'\n\tpatchData\x18\x0b \x01(\x0b\x32\x14.AndroidAppPatchData\x12+\n\x10\x65ncryptionParams\x18\x0c \x01(\x0b\x32\x11.EncryptionParams\"\x85\x01\n\x13\x41ndroidAppPatchData\x12\x17\n\x0f\x62\x61seVersionCode\x18\x01 \x01(\x05\x12\x15\n\rbaseSignature\x18\x02 \x01(\t\x12\x13\n\x0b\x64ownloadUrl\x18\x03 \x01(\t\x12\x13\n\x0bpatchFormat\x18\x04 \x01(\x05\x12\x14\n\x0cmaxPatchSize\x18\x05 \x01(\x03\"[\n\x0f\x41ppFileMetadata\x12\x10\n\x08\x66ileType\x18\x01 \x01(\x05\x12\x13\n\x0bversionCode\x18\x02 \x01(\x05\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x13\n\x0b\x64ownloadUrl\x18\x04 \x01(\t\"K\n\x10\x45ncryptionParams\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12\x15\n\rencryptionKey\x18\x02 \x01(\t\x12\x0f\n\x07hmacKey\x18\x03 \x01(\t\")\n\nHttpCookie\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\xad\x02\n\x07\x41\x64\x64ress\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x61\x64\x64ressLine1\x18\x02 \x01(\t\x12\x14\n\x0c\x61\x64\x64ressLine2\x18\x03 \x01(\t\x12\x0c\n\x04\x63ity\x18\x04 \x01(\t\x12\r\n\x05state\x18\x05 \x01(\t\x12\x12\n\npostalCode\x18\x06 \x01(\t\x12\x15\n\rpostalCountry\x18\x07 \x01(\t\x12\x19\n\x11\x64\x65pendentLocality\x18\x08 \x01(\t\x12\x13\n\x0bsortingCode\x18\t \x01(\t\x12\x14\n\x0clanguageCode\x18\n \x01(\t\x12\x13\n\x0bphoneNumber\x18\x0b \x01(\t\x12\x11\n\tisReduced\x18\x0c \x01(\x08\x12\x11\n\tfirstName\x18\r \x01(\t\x12\x10\n\x08lastName\x18\x0e \x01(\t\x12\r\n\x05\x65mail\x18\x0f \x01(\t\"J\n\nBookAuthor\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65precatedQuery\x18\x02 \x01(\t\x12\x15\n\x05\x64ocid\x18\x03 \x01(\x0b\x32\x06.Docid\"\xc3\x03\n\x0b\x42ookDetails\x12\x1d\n\x07subject\x18\x03 \x03(\x0b\x32\x0c.BookSubject\x12\x11\n\tpublisher\x18\x04 \x01(\t\x12\x17\n\x0fpublicationDate\x18\x05 \x01(\t\x12\x0c\n\x04isbn\x18\x06 \x01(\t\x12\x15\n\rnumberOfPages\x18\x07 \x01(\x05\x12\x10\n\x08subtitle\x18\x08 \x01(\t\x12\x1b\n\x06\x61uthor\x18\t \x03(\x0b\x32\x0b.BookAuthor\x12\x11\n\treaderUrl\x18\n \x01(\t\x12\x17\n\x0f\x64ownloadEpubUrl\x18\x0b \x01(\t\x12\x16\n\x0e\x64ownloadPdfUrl\x18\x0c \x01(\t\x12\x17\n\x0f\x61\x63sEpubTokenUrl\x18\r \x01(\t\x12\x16\n\x0e\x61\x63sPdfTokenUrl\x18\x0e \x01(\t\x12\x15\n\repubAvailable\x18\x0f \x01(\x08\x12\x14\n\x0cpdfAvailable\x18\x10 \x01(\x08\x12\x16\n\x0e\x61\x62outTheAuthor\x18\x11 \x01(\t\x12+\n\nidentifier\x18\x12 \x03(\n2\x17.BookDetails.Identifier\x1a.\n\nIdentifier\x12\x0c\n\x04type\x18\x13 \x01(\x05\x12\x12\n\nidentifier\x18\x14 \x01(\t\"=\n\x0b\x42ookSubject\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x11\n\tsubjectId\x18\x03 \x01(\t\"~\n\nBrowseLink\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x64\x61taUrl\x18\x03 \x01(\t\x12\x14\n\x04icon\x18\x05 \x01(\x0b\x32\x06.Image\x12;\n\x18unknownCategoryContainer\x18\x04 \x01(\x0b\x32\x19.UnknownCategoryContainer\"M\n\x18UnknownCategoryContainer\x12\x31\n\x13\x63\x61tegoryIdContainer\x18\x05 \x01(\x0b\x32\x14.CategoryIdContainer\")\n\x13\x43\x61tegoryIdContainer\x12\x12\n\ncategoryId\x18\x04 \x01(\t\"\xa6\x01\n\x0e\x42rowseResponse\x12\x13\n\x0b\x63ontentsUrl\x18\x01 \x01(\t\x12\x10\n\x08promoUrl\x18\x02 \x01(\t\x12\x1d\n\x08\x63\x61tegory\x18\x03 \x03(\x0b\x32\x0b.BrowseLink\x12\x1f\n\nbreadcrumb\x18\x04 \x03(\x0b\x32\x0b.BrowseLink\x12-\n\x11\x63\x61tegoryContainer\x18\t \x01(\x0b\x32\x12.CategoryContainer\"2\n\x11\x43\x61tegoryContainer\x12\x1d\n\x08\x63\x61tegory\x18\x04 \x03(\x0b\x32\x0b.BrowseLink\"\x8f\x02\n\x10\x41\x64\x64ressChallenge\x12\x1c\n\x14responseAddressParam\x18\x01 \x01(\t\x12\x1f\n\x17responseCheckboxesParam\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x17\n\x0f\x64\x65scriptionHtml\x18\x04 \x01(\t\x12\x1f\n\x08\x63heckbox\x18\x05 \x03(\x0b\x32\r.FormCheckbox\x12\x19\n\x07\x61\x64\x64ress\x18\x06 \x01(\x0b\x32\x08.Address\x12.\n\x0f\x65rrorInputField\x18\x07 \x03(\x0b\x32\x15.InputValidationError\x12\x11\n\terrorHtml\x18\x08 \x01(\t\x12\x15\n\rrequiredField\x18\t \x03(\x05\"\xef\x01\n\x17\x41uthenticationChallenge\x12\x1a\n\x12\x61uthenticationType\x18\x01 \x01(\x05\x12\'\n\x1fresponseAuthenticationTypeParam\x18\x02 \x01(\t\x12\x1f\n\x17responseRetryCountParam\x18\x03 \x01(\t\x12\x15\n\rpinHeaderText\x18\x04 \x01(\t\x12\x1e\n\x16pinDescriptionTextHtml\x18\x05 \x01(\t\x12\x16\n\x0egaiaHeaderText\x18\x06 \x01(\t\x12\x1f\n\x17gaiaDescriptionTextHtml\x18\x07 \x01(\t\"\x98\t\n\x0b\x42uyResponse\x12\x37\n\x10purchaseResponse\x18\x01 \x01(\x0b\x32\x1d.PurchaseNotificationResponse\x12/\n\x0c\x63heckoutinfo\x18\x02 \x01(\n2\x19.BuyResponse.CheckoutInfo\x12\x16\n\x0e\x63ontinueViaUrl\x18\x08 \x01(\t\x12\x19\n\x11purchaseStatusUrl\x18\t \x01(\t\x12\x19\n\x11\x63heckoutServiceId\x18\x0c \x01(\t\x12\x1d\n\x15\x63heckoutTokenRequired\x18\r \x01(\x08\x12\x17\n\x0f\x62\x61seCheckoutUrl\x18\x0e \x01(\t\x12\x17\n\x0ftosCheckboxHtml\x18% \x03(\t\x12\x1a\n\x12iabPermissionError\x18& \x01(\x05\x12\x37\n\x16purchaseStatusResponse\x18\' \x01(\x0b\x32\x17.PurchaseStatusResponse\x12\x16\n\x0epurchaseCookie\x18. \x01(\t\x12\x1d\n\tchallenge\x18\x31 \x01(\x0b\x32\n.Challenge\x12\x15\n\rdownloadToken\x18\x37 \x01(\t\x1a\xdc\x05\n\x0c\x43heckoutInfo\x12\x17\n\x04item\x18\x03 \x01(\x0b\x32\t.LineItem\x12\x1a\n\x07subItem\x18\x04 \x03(\x0b\x32\t.LineItem\x12@\n\x0e\x63heckoutoption\x18\x05 \x03(\n2(.BuyResponse.CheckoutInfo.CheckoutOption\x12\x1d\n\x15\x64\x65precatedCheckoutUrl\x18\n \x01(\t\x12\x18\n\x10\x61\x64\x64InstrumentUrl\x18\x0b \x01(\t\x12\x12\n\nfooterHtml\x18\x14 \x03(\t\x12 \n\x18\x65ligibleInstrumentFamily\x18\x1f \x03(\x05\x12\x14\n\x0c\x66ootnoteHtml\x18$ \x03(\t\x12\'\n\x12\x65ligibleInstrument\x18, \x03(\x0b\x32\x0b.Instrument\x1a\xa6\x03\n\x0e\x43heckoutOption\x12\x15\n\rformOfPayment\x18\x06 \x01(\t\x12\x1b\n\x13\x65ncodedAdjustedCart\x18\x07 \x01(\t\x12\x14\n\x0cinstrumentId\x18\x0f \x01(\t\x12\x17\n\x04item\x18\x10 \x03(\x0b\x32\t.LineItem\x12\x1a\n\x07subItem\x18\x11 \x03(\x0b\x32\t.LineItem\x12\x18\n\x05total\x18\x12 \x01(\x0b\x32\t.LineItem\x12\x12\n\nfooterHtml\x18\x13 \x03(\t\x12\x18\n\x10instrumentFamily\x18\x1d \x01(\x05\x12.\n&deprecatedInstrumentInapplicableReason\x18\x1e \x03(\x05\x12\x1a\n\x12selectedInstrument\x18 \x01(\x08\x12\x1a\n\x07summary\x18! \x01(\x0b\x32\t.LineItem\x12\x14\n\x0c\x66ootnoteHtml\x18# \x03(\t\x12\x1f\n\ninstrument\x18+ \x01(\x0b\x32\x0b.Instrument\x12\x16\n\x0epurchaseCookie\x18- \x01(\t\x12\x16\n\x0e\x64isabledReason\x18\x30 \x03(\t\"s\n\tChallenge\x12+\n\x10\x61\x64\x64ressChallenge\x18\x01 \x01(\x0b\x32\x11.AddressChallenge\x12\x39\n\x17\x61uthenticationChallenge\x18\x02 \x01(\x0b\x32\x18.AuthenticationChallenge\"F\n\x0c\x46ormCheckbox\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x0f\n\x07\x63hecked\x18\x02 \x01(\x08\x12\x10\n\x08required\x18\x03 \x01(\x08\"\\\n\x08LineItem\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x15\n\x05offer\x18\x03 \x01(\x0b\x32\x06.Offer\x12\x16\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x06.Money\"F\n\x05Money\x12\x0e\n\x06micros\x18\x01 \x01(\x03\x12\x14\n\x0c\x63urrencyCode\x18\x02 \x01(\t\x12\x17\n\x0f\x66ormattedAmount\x18\x03 \x01(\t\"\x80\x01\n\x1cPurchaseNotificationResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x1d\n\tdebugInfo\x18\x02 \x01(\x0b\x32\n.DebugInfo\x12\x1d\n\x15localizedErrorMessage\x18\x03 \x01(\t\x12\x12\n\npurchaseId\x18\x04 \x01(\t\"\xf9\x01\n\x16PurchaseStatusResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tstatusMsg\x18\x02 \x01(\t\x12\x13\n\x0bstatusTitle\x18\x03 \x01(\t\x12\x14\n\x0c\x62riefMessage\x18\x04 \x01(\t\x12\x0f\n\x07infoUrl\x18\x05 \x01(\t\x12%\n\rlibraryUpdate\x18\x06 \x01(\x0b\x32\x0e.LibraryUpdate\x12\'\n\x12rejectedInstrument\x18\x07 \x01(\x0b\x32\x0b.Instrument\x12\x30\n\x0f\x61ppDeliveryData\x18\x08 \x01(\x0b\x32\x17.AndroidAppDeliveryData\"D\n\x10\x44\x65liveryResponse\x12\x30\n\x0f\x61ppDeliveryData\x18\x02 \x01(\x0b\x32\x17.AndroidAppDeliveryData\"<\n\x05\x44ocid\x12\x14\n\x0c\x62\x61\x63kendDocid\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\x05\x12\x0f\n\x07\x62\x61\x63kend\x18\x03 \x01(\x05\">\n\x07Install\x12\x11\n\tandroidId\x18\x01 \x01(\x06\x12\x0f\n\x07version\x18\x02 \x01(\x05\x12\x0f\n\x07\x62undled\x18\x03 \x01(\x08\"\x92\x03\n\x05Offer\x12\x0e\n\x06micros\x18\x01 \x01(\x03\x12\x14\n\x0c\x63urrencyCode\x18\x02 \x01(\t\x12\x17\n\x0f\x66ormattedAmount\x18\x03 \x01(\t\x12\x1e\n\x0e\x63onvertedPrice\x18\x04 \x03(\x0b\x32\x06.Offer\x12\x1c\n\x14\x63heckoutFlowRequired\x18\x05 \x01(\x08\x12\x17\n\x0f\x66ullPriceMicros\x18\x06 \x01(\x03\x12\x1b\n\x13\x66ormattedFullAmount\x18\x07 \x01(\t\x12\x11\n\tofferType\x18\x08 \x01(\x05\x12!\n\x0brentalTerms\x18\t \x01(\x0b\x32\x0c.RentalTerms\x12\x12\n\nonSaleDate\x18\n \x01(\x03\x12\x16\n\x0epromotionLabel\x18\x0b \x03(\t\x12-\n\x11subscriptionTerms\x18\x0c \x01(\x0b\x32\x12.SubscriptionTerms\x12\x15\n\rformattedName\x18\r \x01(\t\x12\x1c\n\x14\x66ormattedDescription\x18\x0e \x01(\t\x12\x10\n\x08saleEnds\x18\x1f \x01(\t\"\xb1\x01\n\rOwnershipInfo\x12\x1f\n\x17initiationTimestampMsec\x18\x01 \x01(\x03\x12\x1f\n\x17validUntilTimestampMsec\x18\x02 \x01(\x03\x12\x14\n\x0c\x61utoRenewing\x18\x03 \x01(\x08\x12\"\n\x1arefundTimeoutTimestampMsec\x18\x04 \x01(\x03\x12$\n\x1cpostDeliveryRefundWindowMsec\x18\x05 \x01(\x03\"H\n\x0bRentalTerms\x12\x1a\n\x12grantPeriodSeconds\x18\x01 \x01(\x05\x12\x1d\n\x15\x61\x63tivatePeriodSeconds\x18\x02 \x01(\x05\"[\n\x11SubscriptionTerms\x12$\n\x0frecurringPeriod\x18\x01 \x01(\x0b\x32\x0b.TimePeriod\x12 \n\x0btrialPeriod\x18\x02 \x01(\x0b\x32\x0b.TimePeriod\")\n\nTimePeriod\x12\x0c\n\x04unit\x18\x01 \x01(\x05\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"G\n\x12\x42illingAddressSpec\x12\x1a\n\x12\x62illingAddressType\x18\x01 \x01(\x05\x12\x15\n\rrequiredField\x18\x02 \x03(\x05\">\n\x19\x43\x61rrierBillingCredentials\x12\r\n\x05value\x18\x01 \x01(\t\x12\x12\n\nexpiration\x18\x02 \x01(\x03\"\xa9\x02\n\x18\x43\x61rrierBillingInstrument\x12\x15\n\rinstrumentKey\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63\x63ountType\x18\x02 \x01(\t\x12\x14\n\x0c\x63urrencyCode\x18\x03 \x01(\t\x12\x18\n\x10transactionLimit\x18\x04 \x01(\x03\x12\x1c\n\x14subscriberIdentifier\x18\x05 \x01(\t\x12\x39\n\x17\x65ncryptedSubscriberInfo\x18\x06 \x01(\x0b\x32\x18.EncryptedSubscriberInfo\x12/\n\x0b\x63redentials\x18\x07 \x01(\x0b\x32\x1a.CarrierBillingCredentials\x12\'\n\x12\x61\x63\x63\x65ptedCarrierTos\x18\x08 \x01(\x0b\x32\x0b.CarrierTos\"\xca\x01\n\x1e\x43\x61rrierBillingInstrumentStatus\x12\x1f\n\ncarrierTos\x18\x01 \x01(\x0b\x32\x0b.CarrierTos\x12\x1b\n\x13\x61ssociationRequired\x18\x02 \x01(\x08\x12\x18\n\x10passwordRequired\x18\x03 \x01(\x08\x12.\n\x15\x63\x61rrierPasswordPrompt\x18\x04 \x01(\x0b\x32\x0f.PasswordPrompt\x12\x12\n\napiVersion\x18\x05 \x01(\x05\x12\x0c\n\x04name\x18\x06 \x01(\t\"\x8e\x01\n\nCarrierTos\x12 \n\x06\x64\x63\x62Tos\x18\x01 \x01(\x0b\x32\x10.CarrierTosEntry\x12 \n\x06piiTos\x18\x02 \x01(\x0b\x32\x10.CarrierTosEntry\x12\x1d\n\x15needsDcbTosAcceptance\x18\x03 \x01(\x08\x12\x1d\n\x15needsPiiTosAcceptance\x18\x04 \x01(\x08\"/\n\x0f\x43\x61rrierTosEntry\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\"\xa2\x01\n\x14\x43reditCardInstrument\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x14\n\x0c\x65scrowHandle\x18\x02 \x01(\t\x12\x12\n\nlastDigits\x18\x03 \x01(\t\x12\x17\n\x0f\x65xpirationMonth\x18\x04 \x01(\x05\x12\x16\n\x0e\x65xpirationYear\x18\x05 \x01(\x05\x12!\n\x0e\x65scrowEfeParam\x18\x06 \x03(\x0b\x32\t.EfeParam\"&\n\x08\x45\x66\x65Param\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t\"@\n\x14InputValidationError\x12\x12\n\ninputField\x18\x01 \x01(\x05\x12\x14\n\x0c\x65rrorMessage\x18\x02 \x01(\t\"\xc2\x02\n\nInstrument\x12\x14\n\x0cinstrumentId\x18\x01 \x01(\t\x12 \n\x0e\x62illingAddress\x18\x02 \x01(\x0b\x32\x08.Address\x12)\n\ncreditCard\x18\x03 \x01(\x0b\x32\x15.CreditCardInstrument\x12\x31\n\x0e\x63\x61rrierBilling\x18\x04 \x01(\x0b\x32\x19.CarrierBillingInstrument\x12/\n\x12\x62illingAddressSpec\x18\x05 \x01(\x0b\x32\x13.BillingAddressSpec\x12\x18\n\x10instrumentFamily\x18\x06 \x01(\x05\x12=\n\x14\x63\x61rrierBillingStatus\x18\x07 \x01(\x0b\x32\x1f.CarrierBillingInstrumentStatus\x12\x14\n\x0c\x64isplayTitle\x18\x08 \x01(\t\";\n\x0ePasswordPrompt\x12\x0e\n\x06prompt\x18\x01 \x01(\t\x12\x19\n\x11\x66orgotPasswordUrl\x18\x02 \x01(\t\"\x92\x01\n\x11\x43ontainerMetadata\x12\x11\n\tbrowseUrl\x18\x01 \x01(\t\x12\x13\n\x0bnextPageUrl\x18\x02 \x01(\t\x12\x11\n\trelevance\x18\x03 \x01(\x01\x12\x18\n\x10\x65stimatedResults\x18\x04 \x01(\x03\x12\x17\n\x0f\x61nalyticsCookie\x18\x05 \x01(\t\x12\x0f\n\x07ordered\x18\x06 \x01(\x08\"i\n\tDebugInfo\x12\x0f\n\x07message\x18\x01 \x03(\t\x12!\n\x06timing\x18\x02 \x03(\n2\x11.DebugInfo.Timing\x1a(\n\x06Timing\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x10\n\x08timeInMs\x18\x04 \x01(\x01\"\'\n\x10\x42ulkDetailsEntry\x12\x13\n\x03\x64oc\x18\x01 \x01(\x0b\x32\x06.DocV2\"=\n\x12\x42ulkDetailsRequest\x12\r\n\x05\x64ocid\x18\x01 \x03(\t\x12\x18\n\x10includeChildDocs\x18\x02 \x01(\x08\"7\n\x13\x42ulkDetailsResponse\x12 \n\x05\x65ntry\x18\x01 \x03(\x0b\x32\x11.BulkDetailsEntry\"\xa0\x01\n\x0f\x44\x65tailsResponse\x12\x15\n\x05\x64ocV1\x18\x01 \x01(\x0b\x32\x06.DocV1\x12\x17\n\x0f\x61nalyticsCookie\x18\x02 \x01(\t\x12\x1b\n\nuserReview\x18\x03 \x01(\x0b\x32\x07.Review\x12\x15\n\x05\x64ocV2\x18\x04 \x01(\x0b\x32\x06.DocV2\x12\x12\n\nfooterHtml\x18\x05 \x01(\t\x12\x15\n\x05\x62\x61\x64ge\x18\x07 \x03(\x0b\x32\x06.Badge\"\'\n\x05\x42\x61\x64ge\x12\r\n\x05label\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x0b \x01(\t\"\xb5\x03\n\x18\x44\x65viceConfigurationProto\x12\x13\n\x0btouchScreen\x18\x01 \x01(\x05\x12\x10\n\x08keyboard\x18\x02 \x01(\x05\x12\x12\n\nnavigation\x18\x03 \x01(\x05\x12\x14\n\x0cscreenLayout\x18\x04 \x01(\x05\x12\x17\n\x0fhasHardKeyboard\x18\x05 \x01(\x08\x12\x1c\n\x14hasFiveWayNavigation\x18\x06 \x01(\x08\x12\x15\n\rscreenDensity\x18\x07 \x01(\x05\x12\x13\n\x0bglEsVersion\x18\x08 \x01(\x05\x12\x1b\n\x13systemSharedLibrary\x18\t \x03(\t\x12\x1e\n\x16systemAvailableFeature\x18\n \x03(\t\x12\x16\n\x0enativePlatform\x18\x0b \x03(\t\x12\x13\n\x0bscreenWidth\x18\x0c \x01(\x05\x12\x14\n\x0cscreenHeight\x18\r \x01(\x05\x12\x1d\n\x15systemSupportedLocale\x18\x0e \x03(\t\x12\x13\n\x0bglExtension\x18\x0f \x03(\t\x12\x13\n\x0b\x64\x65viceClass\x18\x10 \x01(\x05\x12\x1c\n\x14maxApkDownloadSizeMb\x18\x11 \x01(\x05\"\xff\x03\n\x08\x44ocument\x12\x15\n\x05\x64ocid\x18\x01 \x01(\x0b\x32\x06.Docid\x12\x1a\n\nfetchDocid\x18\x02 \x01(\x0b\x32\x06.Docid\x12\x1b\n\x0bsampleDocid\x18\x03 \x01(\x0b\x32\x06.Docid\x12\r\n\x05title\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x0f\n\x07snippet\x18\x06 \x03(\t\x12\x1f\n\x0fpriceDeprecated\x18\x07 \x01(\x0b\x32\x06.Offer\x12#\n\x0c\x61vailability\x18\t \x01(\x0b\x32\r.Availability\x12\x15\n\x05image\x18\n \x03(\x0b\x32\x06.Image\x12\x18\n\x05\x63hild\x18\x0b \x03(\x0b\x32\t.Document\x12)\n\x0f\x61ggregateRating\x18\r \x01(\x0b\x32\x10.AggregateRating\x12\x15\n\x05offer\x18\x0e \x03(\x0b\x32\x06.Offer\x12*\n\x11translatedSnippet\x18\x0f \x03(\x0b\x32\x0f.TranslatedText\x12)\n\x0f\x64ocumentVariant\x18\x10 \x03(\x0b\x32\x10.DocumentVariant\x12\x12\n\ncategoryId\x18\x11 \x03(\t\x12\x1d\n\ndecoration\x18\x12 \x03(\x0b\x32\t.Document\x12\x19\n\x06parent\x18\x13 \x03(\x0b\x32\t.Document\x12\x18\n\x10privacyPolicyUrl\x18\x14 \x01(\t\"\x81\x02\n\x0f\x44ocumentVariant\x12\x15\n\rvariationType\x18\x01 \x01(\x05\x12\x13\n\x04rule\x18\x02 \x01(\x0b\x32\x05.Rule\x12\r\n\x05title\x18\x03 \x01(\t\x12\x0f\n\x07snippet\x18\x04 \x03(\t\x12\x15\n\rrecentChanges\x18\x05 \x01(\t\x12(\n\x0f\x61utoTranslation\x18\x06 \x03(\x0b\x32\x0f.TranslatedText\x12\x15\n\x05offer\x18\x07 \x03(\x0b\x32\x06.Offer\x12\x11\n\tchannelId\x18\t \x01(\x03\x12\x18\n\x05\x63hild\x18\n \x03(\x0b\x32\t.Document\x12\x1d\n\ndecoration\x18\x0b \x03(\x0b\x32\t.Document\"\xc9\x02\n\x05Image\x12\x11\n\timageType\x18\x01 \x01(\x05\x12#\n\tdimension\x18\x02 \x01(\n2\x10.Image.Dimension\x12\x10\n\x08imageUrl\x18\x05 \x01(\t\x12\x18\n\x10\x61ltTextLocalized\x18\x06 \x01(\t\x12\x11\n\tsecureUrl\x18\x07 \x01(\t\x12\x1a\n\x12positionInSequence\x18\x08 \x01(\x05\x12\x1e\n\x16supportsFifeUrlOptions\x18\t \x01(\x08\x12!\n\x08\x63itation\x18\n \x01(\n2\x0f.Image.Citation\x12\r\n\x05\x63olor\x18\x0f \x01(\t\x1a*\n\tDimension\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0e\n\x06height\x18\x04 \x01(\x05\x1a/\n\x08\x43itation\x12\x16\n\x0etitleLocalized\x18\x0b \x01(\t\x12\x0b\n\x03url\x18\x0c \x01(\t\"J\n\x0eTranslatedText\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x14\n\x0csourceLocale\x18\x02 \x01(\t\x12\x14\n\x0ctargetLocale\x18\x03 \x01(\t\"i\n\x0bPlusOneData\x12\x11\n\tsetByUser\x18\x01 \x01(\x08\x12\r\n\x05total\x18\x02 \x01(\x03\x12\x14\n\x0c\x63irclesTotal\x18\x03 \x01(\x03\x12\"\n\rcirclesPeople\x18\x04 \x03(\x0b\x32\x0b.PlusPerson\":\n\nPlusPerson\x12\x13\n\x0b\x64isplayName\x18\x02 \x01(\t\x12\x17\n\x0fprofileImageUrl\x18\x04 \x01(\t\"c\n\x0c\x41lbumDetails\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1e\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\r.MusicDetails\x12%\n\rdisplayArtist\x18\x03 \x01(\x0b\x32\x0e.ArtistDetails\"\xb6\x04\n\nAppDetails\x12\x15\n\rdeveloperName\x18\x01 \x01(\t\x12\x1a\n\x12majorVersionNumber\x18\x02 \x01(\x05\x12\x13\n\x0bversionCode\x18\x03 \x01(\x05\x12\x15\n\rversionString\x18\x04 \x01(\t\x12\r\n\x05title\x18\x05 \x01(\t\x12\x13\n\x0b\x61ppCategory\x18\x07 \x03(\t\x12\x15\n\rcontentRating\x18\x08 \x01(\x05\x12\x18\n\x10installationSize\x18\t \x01(\x03\x12\x12\n\npermission\x18\n \x03(\t\x12\x16\n\x0e\x64\x65veloperEmail\x18\x0b \x01(\t\x12\x18\n\x10\x64\x65veloperWebsite\x18\x0c \x01(\t\x12\x14\n\x0cnumDownloads\x18\r \x01(\t\x12\x13\n\x0bpackageName\x18\x0e \x01(\t\x12\x19\n\x11recentChangesHtml\x18\x0f \x01(\t\x12\x12\n\nuploadDate\x18\x10 \x01(\t\x12\x1b\n\x04\x66ile\x18\x11 \x03(\x0b\x32\r.FileMetadata\x12\x0f\n\x07\x61ppType\x18\x12 \x01(\t\x12\x10\n\x08unstable\x18\x15 \x01(\x08\x12\x13\n\x0b\x63ontainsAds\x18\x1e \x01(\t\x12#\n\x0c\x64\x65pendencies\x18\" \x01(\x0b\x32\r.Dependencies\x12/\n\x12testingProgramInfo\x18# \x01(\x0b\x32\x13.TestingProgramInfo\x12)\n\x0f\x65\x61rlyAccessInfo\x18$ \x01(\x0b\x32\x10.EarlyAccessInfo\"e\n\x0c\x44\x65pendencies\x12\x10\n\x08unknown1\x18\x01 \x01(\x05\x12\x10\n\x08unknown2\x18\x02 \x01(\x03\x12\x1f\n\ndependency\x18\x03 \x03(\x0b\x32\x0b.Dependency\x12\x10\n\x08unknown3\x18\x04 \x01(\x05\"D\n\nDependency\x12\x13\n\x0bpackageName\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\x05\x12\x10\n\x08unknown4\x18\x04 \x01(\x05\"Z\n\x12TestingProgramInfo\x12\x12\n\nsubscribed\x18\x02 \x01(\x08\x12\x13\n\x0bsubscribed1\x18\x03 \x01(\x08\x12\x1b\n\x13testingProgramEmail\x18\x05 \x01(\t\" \n\x0f\x45\x61rlyAccessInfo\x12\r\n\x05\x65mail\x18\x03 \x01(\t\"^\n\rArtistDetails\x12\x12\n\ndetailsUrl\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12+\n\rexternalLinks\x18\x03 \x01(\x0b\x32\x14.ArtistExternalLinks\"b\n\x13\x41rtistExternalLinks\x12\x12\n\nwebsiteUrl\x18\x01 \x03(\t\x12\x1c\n\x14googlePlusProfileUrl\x18\x02 \x01(\t\x12\x19\n\x11youtubeChannelUrl\x18\x03 \x01(\t\"\xc6\x03\n\x0f\x44ocumentDetails\x12\x1f\n\nappDetails\x18\x01 \x01(\x0b\x32\x0b.AppDetails\x12#\n\x0c\x61lbumDetails\x18\x02 \x01(\x0b\x32\r.AlbumDetails\x12%\n\rartistDetails\x18\x03 \x01(\x0b\x32\x0e.ArtistDetails\x12!\n\x0bsongDetails\x18\x04 \x01(\x0b\x32\x0c.SongDetails\x12!\n\x0b\x62ookDetails\x18\x05 \x01(\x0b\x32\x0c.BookDetails\x12#\n\x0cvideoDetails\x18\x06 \x01(\x0b\x32\r.VideoDetails\x12\x31\n\x13subscriptionDetails\x18\x07 \x01(\x0b\x32\x14.SubscriptionDetails\x12)\n\x0fmagazineDetails\x18\x08 \x01(\x0b\x32\x10.MagazineDetails\x12%\n\rtvShowDetails\x18\t \x01(\x0b\x32\x0e.TvShowDetails\x12)\n\x0ftvSeasonDetails\x18\n \x01(\x0b\x32\x10.TvSeasonDetails\x12+\n\x10tvEpisodeDetails\x18\x0b \x01(\x0b\x32\x11.TvEpisodeDetails\"C\n\x0c\x46ileMetadata\x12\x10\n\x08\x66ileType\x18\x01 \x01(\x05\x12\x13\n\x0bversionCode\x18\x02 \x01(\x05\x12\x0c\n\x04size\x18\x03 \x01(\x03\"\x94\x01\n\x0fMagazineDetails\x12\x18\n\x10parentDetailsUrl\x18\x01 \x01(\t\x12)\n!deviceAvailabilityDescriptionHtml\x18\x02 \x01(\t\x12\x16\n\x0epsvDescription\x18\x03 \x01(\t\x12$\n\x1c\x64\x65liveryFrequencyDescription\x18\x04 \x01(\t\"\xbb\x01\n\x0cMusicDetails\x12\x11\n\tcensoring\x18\x01 \x01(\x05\x12\x13\n\x0b\x64urationSec\x18\x02 \x01(\x05\x12\x1b\n\x13originalReleaseDate\x18\x03 \x01(\t\x12\r\n\x05label\x18\x04 \x01(\t\x12\x1e\n\x06\x61rtist\x18\x05 \x03(\x0b\x32\x0e.ArtistDetails\x12\r\n\x05genre\x18\x06 \x03(\t\x12\x13\n\x0breleaseDate\x18\x07 \x01(\t\x12\x13\n\x0breleaseType\x18\x08 \x03(\x05\"\x9e\x01\n\x0bSongDetails\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1e\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\r.MusicDetails\x12\x11\n\talbumName\x18\x03 \x01(\t\x12\x13\n\x0btrackNumber\x18\x04 \x01(\x05\x12\x12\n\npreviewUrl\x18\x05 \x01(\t\x12%\n\rdisplayArtist\x18\x06 \x01(\x0b\x32\x0e.ArtistDetails\"1\n\x13SubscriptionDetails\x12\x1a\n\x12subscriptionPeriod\x18\x01 \x01(\x05\"e\n\x07Trailer\x12\x11\n\ttrailerId\x18\x01 \x01(\t\x12\r\n\x05title\x18\x02 \x01(\t\x12\x14\n\x0cthumbnailUrl\x18\x03 \x01(\t\x12\x10\n\x08watchUrl\x18\x04 \x01(\t\x12\x10\n\x08\x64uration\x18\x05 \x01(\t\"W\n\x10TvEpisodeDetails\x12\x18\n\x10parentDetailsUrl\x18\x01 \x01(\t\x12\x14\n\x0c\x65pisodeIndex\x18\x02 \x01(\x05\x12\x13\n\x0breleaseDate\x18\x03 \x01(\t\"j\n\x0fTvSeasonDetails\x12\x18\n\x10parentDetailsUrl\x18\x01 \x01(\t\x12\x13\n\x0bseasonIndex\x18\x02 \x01(\x05\x12\x13\n\x0breleaseDate\x18\x03 \x01(\t\x12\x13\n\x0b\x62roadcaster\x18\x04 \x01(\t\"]\n\rTvShowDetails\x12\x13\n\x0bseasonCount\x18\x01 \x01(\x05\x12\x11\n\tstartYear\x18\x02 \x01(\x05\x12\x0f\n\x07\x65ndYear\x18\x03 \x01(\x05\x12\x13\n\x0b\x62roadcaster\x18\x04 \x01(\t\"?\n\x0bVideoCredit\x12\x12\n\ncreditType\x18\x01 \x01(\x05\x12\x0e\n\x06\x63redit\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x03(\t\"\xdb\x01\n\x0cVideoDetails\x12\x1c\n\x06\x63redit\x18\x01 \x03(\x0b\x32\x0c.VideoCredit\x12\x10\n\x08\x64uration\x18\x02 \x01(\t\x12\x13\n\x0breleaseDate\x18\x03 \x01(\t\x12\x15\n\rcontentRating\x18\x04 \x01(\t\x12\r\n\x05likes\x18\x05 \x01(\x03\x12\x10\n\x08\x64islikes\x18\x06 \x01(\x03\x12\r\n\x05genre\x18\x07 \x03(\t\x12\x19\n\x07trailer\x18\x08 \x03(\x0b\x32\x08.Trailer\x12$\n\nrentalTerm\x18\t \x03(\x0b\x32\x10.VideoRentalTerm\"\xa0\x01\n\x0fVideoRentalTerm\x12\x11\n\tofferType\x18\x01 \x01(\x05\x12\x19\n\x11offerAbbreviation\x18\x02 \x01(\t\x12\x14\n\x0crentalHeader\x18\x03 \x01(\t\x12#\n\x04term\x18\x04 \x03(\n2\x15.VideoRentalTerm.Term\x1a$\n\x04Term\x12\x0e\n\x06header\x18\x05 \x01(\t\x12\x0c\n\x04\x62ody\x18\x06 \x01(\t\"\xf9\x01\n\x06\x42ucket\x12\x18\n\x08\x64ocument\x18\x01 \x03(\x0b\x32\x06.DocV1\x12\x13\n\x0bmultiCorpus\x18\x02 \x01(\x08\x12\r\n\x05title\x18\x03 \x01(\t\x12\x0f\n\x07iconUrl\x18\x04 \x01(\t\x12\x17\n\x0f\x66ullContentsUrl\x18\x05 \x01(\t\x12\x11\n\trelevance\x18\x06 \x01(\x01\x12\x18\n\x10\x65stimatedResults\x18\x07 \x01(\x03\x12\x17\n\x0f\x61nalyticsCookie\x18\x08 \x01(\t\x12\x1b\n\x13\x66ullContentsListUrl\x18\t \x01(\t\x12\x13\n\x0bnextPageUrl\x18\n \x01(\t\x12\x0f\n\x07ordered\x18\x0b \x01(\x08\"H\n\x0cListResponse\x12\x17\n\x06\x62ucket\x18\x01 \x03(\x0b\x32\x07.Bucket\x12\x1f\n\x07\x63luster\x18\x02 \x03(\x0b\x32\x0e.SearchCluster\"\x94\x03\n\x05\x44ocV1\x12\x1c\n\tfinskyDoc\x18\x01 \x01(\x0b\x32\t.Document\x12\r\n\x05\x64ocid\x18\x02 \x01(\t\x12\x12\n\ndetailsUrl\x18\x03 \x01(\t\x12\x12\n\nreviewsUrl\x18\x04 \x01(\t\x12\x16\n\x0erelatedListUrl\x18\x05 \x01(\t\x12\x15\n\rmoreByListUrl\x18\x06 \x01(\t\x12\x10\n\x08shareUrl\x18\x07 \x01(\t\x12\x0f\n\x07\x63reator\x18\x08 \x01(\t\x12!\n\x07\x64\x65tails\x18\t \x01(\x0b\x32\x10.DocumentDetails\x12\x17\n\x0f\x64\x65scriptionHtml\x18\n \x01(\t\x12\x18\n\x10relatedBrowseUrl\x18\x0b \x01(\t\x12\x17\n\x0fmoreByBrowseUrl\x18\x0c \x01(\t\x12\x15\n\rrelatedHeader\x18\r \x01(\t\x12\x14\n\x0cmoreByHeader\x18\x0e \x01(\t\x12\r\n\x05title\x18\x0f \x01(\t\x12!\n\x0bplusOneData\x18\x10 \x01(\x0b\x32\x0c.PlusOneData\x12\x16\n\x0ewarningMessage\x18\x11 \x01(\t\"\xc9\x04\n\x05\x44ocV2\x12\r\n\x05\x64ocid\x18\x01 \x01(\t\x12\x14\n\x0c\x62\x61\x63kendDocid\x18\x02 \x01(\t\x12\x0f\n\x07\x64ocType\x18\x03 \x01(\x05\x12\x11\n\tbackendId\x18\x04 \x01(\x05\x12\r\n\x05title\x18\x05 \x01(\t\x12\x0f\n\x07\x63reator\x18\x06 \x01(\t\x12\x17\n\x0f\x64\x65scriptionHtml\x18\x07 \x01(\t\x12\x15\n\x05offer\x18\x08 \x03(\x0b\x32\x06.Offer\x12#\n\x0c\x61vailability\x18\t \x01(\x0b\x32\r.Availability\x12\x15\n\x05image\x18\n \x03(\x0b\x32\x06.Image\x12\x15\n\x05\x63hild\x18\x0b \x03(\x0b\x32\x06.DocV2\x12-\n\x11\x63ontainerMetadata\x18\x0c \x01(\x0b\x32\x12.ContainerMetadata\x12!\n\x07\x64\x65tails\x18\r \x01(\x0b\x32\x10.DocumentDetails\x12)\n\x0f\x61ggregateRating\x18\x0e \x01(\x0b\x32\x10.AggregateRating\x12#\n\x0crelatedLinks\x18\x0f \x01(\x0b\x32\r.RelatedLinks\x12\x12\n\ndetailsUrl\x18\x10 \x01(\t\x12\x10\n\x08shareUrl\x18\x11 \x01(\t\x12\x12\n\nreviewsUrl\x18\x12 \x01(\t\x12\x12\n\nbackendUrl\x18\x13 \x01(\t\x12\x1a\n\x12purchaseDetailsUrl\x18\x14 \x01(\t\x12\x17\n\x0f\x64\x65tailsReusable\x18\x15 \x01(\x08\x12\x10\n\x08subtitle\x18\x16 \x01(\t\x12\x1d\n\tunknown25\x18\x19 \x01(\x0b\x32\n.Unknown25\")\n\tUnknown25\x12\x1c\n\x04item\x18\x02 \x03(\x0b\x32\x0e.Unknown25Item\"F\n\rUnknown25Item\x12\r\n\x05label\x18\x01 \x01(\t\x12&\n\tcontainer\x18\x03 \x01(\x0b\x32\x13.Unknown25Container\"#\n\x12Unknown25Container\x12\r\n\x05value\x18\x02 \x01(\t\"\xd9\x01\n\x0cRelatedLinks\x12\'\n\x08unknown1\x18\n \x01(\x0b\x32\x15.RelatedLinksUnknown1\x12\x18\n\x10privacyPolicyUrl\x18\x12 \x01(\t\x12&\n\x10youMightAlsoLike\x18\x18 \x01(\x0b\x32\x0c.RelatedLink\x12\x15\n\x05rated\x18\x1d \x01(\x0b\x32\x06.Rated\x12\"\n\x0crelatedLinks\x18\" \x03(\x0b\x32\x0c.RelatedLink\x12#\n\x0c\x63\x61tegoryInfo\x18\x35 \x01(\x0b\x32\r.CategoryInfo\"?\n\x14RelatedLinksUnknown1\x12\'\n\x08unknown2\x18\x02 \x01(\x0b\x32\x15.RelatedLinksUnknown2\"+\n\x14RelatedLinksUnknown2\x12\x13\n\x0bnextPageUrl\x18\x03 \x01(\t\"H\n\x05Rated\x12\r\n\x05label\x18\x01 \x01(\t\x12\x15\n\x05image\x18\x02 \x01(\x0b\x32\x06.Image\x12\x19\n\x11learnMoreHtmlLink\x18\x04 \x01(\t\"8\n\x0bRelatedLink\x12\r\n\x05label\x18\x01 \x01(\t\x12\x0c\n\x04url1\x18\x02 \x01(\t\x12\x0c\n\x04url2\x18\x03 \x01(\t\"4\n\x0c\x43\x61tegoryInfo\x12\x0f\n\x07\x61ppType\x18\x01 \x01(\t\x12\x13\n\x0b\x61ppCategory\x18\x02 \x01(\t\"\x99\x01\n\x17\x45ncryptedSubscriberInfo\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\t\x12\x14\n\x0c\x65ncryptedKey\x18\x02 \x01(\t\x12\x11\n\tsignature\x18\x03 \x01(\t\x12\x12\n\ninitVector\x18\x04 \x01(\t\x12\x18\n\x10googleKeyVersion\x18\x05 \x01(\x05\x12\x19\n\x11\x63\x61rrierKeyVersion\x18\x06 \x01(\x05\"\xbd\x03\n\x0c\x41vailability\x12\x13\n\x0brestriction\x18\x05 \x01(\x05\x12\x11\n\tofferType\x18\x06 \x01(\x05\x12\x13\n\x04rule\x18\x07 \x01(\x0b\x32\x05.Rule\x12X\n perdeviceavailabilityrestriction\x18\t \x03(\n2..Availability.PerDeviceAvailabilityRestriction\x12\x18\n\x10\x61vailableIfOwned\x18\r \x01(\x08\x12\x19\n\x07install\x18\x0e \x03(\x0b\x32\x08.Install\x12)\n\nfilterInfo\x18\x10 \x01(\x0b\x32\x15.FilterEvaluationInfo\x12%\n\rownershipInfo\x18\x11 \x01(\x0b\x32\x0e.OwnershipInfo\x1a\x8e\x01\n PerDeviceAvailabilityRestriction\x12\x11\n\tandroidId\x18\n \x01(\x06\x12\x19\n\x11\x64\x65viceRestriction\x18\x0b \x01(\x05\x12\x11\n\tchannelId\x18\x0c \x01(\x03\x12)\n\nfilterInfo\x18\x0f \x01(\x0b\x32\x15.FilterEvaluationInfo\"?\n\x14\x46ilterEvaluationInfo\x12\'\n\x0eruleEvaluation\x18\x01 \x03(\x0b\x32\x0f.RuleEvaluation\"\xd4\x01\n\x04Rule\x12\x0e\n\x06negate\x18\x01 \x01(\x08\x12\x10\n\x08operator\x18\x02 \x01(\x05\x12\x0b\n\x03key\x18\x03 \x01(\x05\x12\x11\n\tstringArg\x18\x04 \x03(\t\x12\x0f\n\x07longArg\x18\x05 \x03(\x03\x12\x11\n\tdoubleArg\x18\x06 \x03(\x01\x12\x16\n\x07subrule\x18\x07 \x03(\x0b\x32\x05.Rule\x12\x14\n\x0cresponseCode\x18\x08 \x01(\x05\x12\x0f\n\x07\x63omment\x18\t \x01(\t\x12\x15\n\rstringArgHash\x18\n \x03(\x06\x12\x10\n\x08\x63onstArg\x18\x0b \x03(\x05\"\x8d\x01\n\x0eRuleEvaluation\x12\x13\n\x04rule\x18\x01 \x01(\x0b\x32\x05.Rule\x12\x19\n\x11\x61\x63tualStringValue\x18\x02 \x03(\t\x12\x17\n\x0f\x61\x63tualLongValue\x18\x03 \x03(\x03\x12\x17\n\x0f\x61\x63tualBoolValue\x18\x04 \x03(\x08\x12\x19\n\x11\x61\x63tualDoubleValue\x18\x05 \x03(\x01\"v\n\x11LibraryAppDetails\x12\x17\n\x0f\x63\x65rtificateHash\x18\x02 \x01(\t\x12\"\n\x1arefundTimeoutTimestampMsec\x18\x03 \x01(\x03\x12$\n\x1cpostDeliveryRefundWindowMsec\x18\x04 \x01(\x03\"D\n\x13LibraryInAppDetails\x12\x1a\n\x12signedPurchaseData\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\t\"\xf0\x01\n\x0fLibraryMutation\x12\x15\n\x05\x64ocid\x18\x01 \x01(\x0b\x32\x06.Docid\x12\x11\n\tofferType\x18\x02 \x01(\x05\x12\x14\n\x0c\x64ocumentHash\x18\x03 \x01(\x03\x12\x0f\n\x07\x64\x65leted\x18\x04 \x01(\x08\x12&\n\nappDetails\x18\x05 \x01(\x0b\x32\x12.LibraryAppDetails\x12\x38\n\x13subscriptionDetails\x18\x06 \x01(\x0b\x32\x1b.LibrarySubscriptionDetails\x12*\n\x0cinAppDetails\x18\x07 \x01(\x0b\x32\x14.LibraryInAppDetails\"\x95\x01\n\x1aLibrarySubscriptionDetails\x12\x1f\n\x17initiationTimestampMsec\x18\x01 \x01(\x03\x12\x1f\n\x17validUntilTimestampMsec\x18\x02 \x01(\x03\x12\x14\n\x0c\x61utoRenewing\x18\x03 \x01(\x08\x12\x1f\n\x17trialUntilTimestampMsec\x18\x04 \x01(\x03\"\x8c\x01\n\rLibraryUpdate\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0e\n\x06\x63orpus\x18\x02 \x01(\x05\x12\x13\n\x0bserverToken\x18\x03 \x01(\x0c\x12\"\n\x08mutation\x18\x04 \x03(\x0b\x32\x10.LibraryMutation\x12\x0f\n\x07hasMore\x18\x05 \x01(\x08\x12\x11\n\tlibraryId\x18\x06 \x01(\t\"B\n\x1a\x41ndroidAppNotificationData\x12\x13\n\x0bversionCode\x18\x01 \x01(\x05\x12\x0f\n\x07\x61ssetId\x18\x02 \x01(\t\"M\n\x15InAppNotificationData\x12\x17\n\x0f\x63heckoutOrderId\x18\x01 \x01(\t\x12\x1b\n\x13inAppNotificationId\x18\x02 \x01(\t\"#\n\x10LibraryDirtyData\x12\x0f\n\x07\x62\x61\x63kend\x18\x01 \x01(\x05\"\x97\x04\n\x0cNotification\x12\x18\n\x10notificationType\x18\x01 \x01(\x05\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\x12\x15\n\x05\x64ocid\x18\x04 \x01(\x0b\x32\x06.Docid\x12\x10\n\x08\x64ocTitle\x18\x05 \x01(\t\x12\x11\n\tuserEmail\x18\x06 \x01(\t\x12,\n\x07\x61ppData\x18\x07 \x01(\x0b\x32\x1b.AndroidAppNotificationData\x12\x30\n\x0f\x61ppDeliveryData\x18\x08 \x01(\x0b\x32\x17.AndroidAppDeliveryData\x12\x31\n\x13purchaseRemovalData\x18\t \x01(\x0b\x32\x14.PurchaseRemovalData\x12\x33\n\x14userNotificationData\x18\n \x01(\x0b\x32\x15.UserNotificationData\x12\x35\n\x15inAppNotificationData\x18\x0b \x01(\x0b\x32\x16.InAppNotificationData\x12\x33\n\x14purchaseDeclinedData\x18\x0c \x01(\x0b\x32\x15.PurchaseDeclinedData\x12\x16\n\x0enotificationId\x18\r \x01(\t\x12%\n\rlibraryUpdate\x18\x0e \x01(\x0b\x32\x0e.LibraryUpdate\x12+\n\x10libraryDirtyData\x18\x0f \x01(\x0b\x32\x11.LibraryDirtyData\"@\n\x14PurchaseDeclinedData\x12\x0e\n\x06reason\x18\x01 \x01(\x05\x12\x18\n\x10showNotification\x18\x02 \x01(\x08\"(\n\x13PurchaseRemovalData\x12\x11\n\tmalicious\x18\x01 \x01(\x08\"\x88\x01\n\x14UserNotificationData\x12\x19\n\x11notificationTitle\x18\x01 \x01(\t\x12\x18\n\x10notificationText\x18\x02 \x01(\t\x12\x12\n\ntickerText\x18\x03 \x01(\t\x12\x13\n\x0b\x64ialogTitle\x18\x04 \x01(\t\x12\x12\n\ndialogText\x18\x05 \x01(\t\"\xa7\x02\n\x0f\x41ggregateRating\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x12\n\nstarRating\x18\x02 \x01(\x02\x12\x14\n\x0cratingsCount\x18\x03 \x01(\x04\x12\x16\n\x0eoneStarRatings\x18\x04 \x01(\x04\x12\x16\n\x0etwoStarRatings\x18\x05 \x01(\x04\x12\x18\n\x10threeStarRatings\x18\x06 \x01(\x04\x12\x17\n\x0f\x66ourStarRatings\x18\x07 \x01(\x04\x12\x17\n\x0f\x66iveStarRatings\x18\x08 \x01(\x04\x12\x15\n\rthumbsUpCount\x18\t \x01(\x04\x12\x17\n\x0fthumbsDownCount\x18\n \x01(\x04\x12\x14\n\x0c\x63ommentCount\x18\x0b \x01(\x04\x12\x1a\n\x12\x62\x61yesianMeanRating\x18\x0c \x01(\x01\"\x8f\x05\n\x07Payload\x12#\n\x0clistResponse\x18\x01 \x01(\x0b\x32\r.ListResponse\x12)\n\x0f\x64\x65tailsResponse\x18\x02 \x01(\x0b\x32\x10.DetailsResponse\x12\'\n\x0ereviewResponse\x18\x03 \x01(\x0b\x32\x0f.ReviewResponse\x12!\n\x0b\x62uyResponse\x18\x04 \x01(\x0b\x32\x0c.BuyResponse\x12\'\n\x0esearchResponse\x18\x05 \x01(\x0b\x32\x0f.SearchResponse\x12\'\n\x0e\x62rowseResponse\x18\x07 \x01(\x0b\x32\x0f.BrowseResponse\x12\x37\n\x16purchaseStatusResponse\x18\x08 \x01(\x0b\x32\x17.PurchaseStatusResponse\x12\x13\n\x0blogResponse\x18\n \x01(\t\x12\x31\n\x13\x62ulkDetailsResponse\x18\x13 \x01(\x0b\x32\x14.BulkDetailsResponse\x12+\n\x10\x64\x65liveryResponse\x18\x15 \x01(\x0b\x32\x11.DeliveryResponse\x12?\n\x1auploadDeviceConfigResponse\x18\x19 \x01(\x0b\x32\x1b.UploadDeviceConfigResponse\x12\x37\n\x16\x61ndroidCheckinResponse\x18\x1a \x01(\x0b\x32\x17.AndroidCheckinResponse\x12\x35\n\x15searchSuggestResponse\x18( \x01(\x0b\x32\x16.SearchSuggestResponse\x12\x37\n\x16testingProgramResponse\x18P \x01(\x0b\x32\x17.TestingProgramResponse\"g\n\x08PreFetch\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\"\n\x08response\x18\x02 \x01(\x0b\x32\x10.ResponseWrapper\x12\x0c\n\x04\x65tag\x18\x03 \x01(\t\x12\x0b\n\x03ttl\x18\x04 \x01(\x03\x12\x0f\n\x07softTtl\x18\x05 \x01(\x03\"\x91\x01\n\x0fResponseWrapper\x12\x19\n\x07payload\x18\x01 \x01(\x0b\x32\x08.Payload\x12!\n\x08\x63ommands\x18\x02 \x01(\x0b\x32\x0f.ServerCommands\x12\x1b\n\x08preFetch\x18\x03 \x03(\x0b\x32\t.PreFetch\x12#\n\x0cnotification\x18\x04 \x03(\x0b\x32\r.Notification\"]\n\x0eServerCommands\x12\x12\n\nclearCache\x18\x01 \x01(\x08\x12\x1b\n\x13\x64isplayErrorMessage\x18\x02 \x01(\t\x12\x1a\n\x12logErrorStacktrace\x18\x03 \x01(\t\"D\n\x12GetReviewsResponse\x12\x17\n\x06review\x18\x01 \x03(\x0b\x32\x07.Review\x12\x15\n\rmatchingCount\x18\x02 \x01(\x03\"\xa7\x02\n\x06Review\x12\x12\n\nauthorName\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0e\n\x06source\x18\x03 \x01(\t\x12\x17\n\x0f\x64ocumentVersion\x18\x04 \x01(\t\x12\x15\n\rtimestampMsec\x18\x05 \x01(\x03\x12\x12\n\nstarRating\x18\x06 \x01(\x05\x12\r\n\x05title\x18\x07 \x01(\t\x12\x0f\n\x07\x63omment\x18\x08 \x01(\t\x12\x11\n\tcommentId\x18\t \x01(\t\x12\x12\n\ndeviceName\x18\x13 \x01(\t\x12\x11\n\treplyText\x18\x1d \x01(\t\x12\x1a\n\x12replyTimestampMsec\x18\x1e \x01(\x03\x12\x17\n\x06\x61uthor\x18\x1f \x01(\x0b\x32\x07.Author\x12\x19\n\x07\x61uthor2\x18! \x01(\x0b\x32\x08.Author2\"-\n\x06\x41uthor\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x15\n\x04urls\x18\x05 \x01(\x0b\x32\x07.Avatar\"\xae\x01\n\x07\x41uthor2\x12\x16\n\x0epersonIdString\x18\x01 \x01(\t\x12\x10\n\x08personId\x18\x02 \x01(\t\x12\x10\n\x08unknown1\x18\x03 \x01(\x05\x12\x10\n\x08unknown2\x18\x04 \x01(\x05\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x15\n\x04urls\x18\n \x01(\x0b\x32\x07.Avatar\x12\x15\n\rgooglePlusUrl\x18\x13 \x01(\t\x12\x19\n\x11googlePlusTagline\x18\x16 \x01(\t\"^\n\x06\x41vatar\x12\x10\n\x08unknown1\x18\x01 \x01(\x05\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x11\n\tsecureUrl\x18\x07 \x01(\t\x12\x10\n\x08unknown2\x18\t \x01(\x08\x12\x10\n\x08unknown3\x18\x16 \x01(\x08\"l\n\x0eReviewResponse\x12(\n\x0bgetResponse\x18\x01 \x01(\x0b\x32\x13.GetReviewsResponse\x12\x13\n\x0bnextPageUrl\x18\x02 \x01(\t\x12\x1b\n\nuserReview\x18\x03 \x01(\x0b\x32\x07.Review\"g\n\rRelatedSearch\x12\x11\n\tsearchUrl\x18\x01 \x01(\t\x12\x0e\n\x06header\x18\x02 \x01(\t\x12\x11\n\tbackendId\x18\x03 \x01(\x05\x12\x0f\n\x07\x64ocType\x18\x04 \x01(\x05\x12\x0f\n\x07\x63urrent\x18\x05 \x01(\x08\"\xc1\x01\n\x0eSearchResponse\x12\x15\n\roriginalQuery\x18\x01 \x01(\t\x12\x16\n\x0esuggestedQuery\x18\x02 \x01(\t\x12\x16\n\x0e\x61ggregateQuery\x18\x03 \x01(\x08\x12\x17\n\x06\x62ucket\x18\x04 \x03(\x0b\x32\x07.Bucket\x12\x13\n\x03\x64oc\x18\x05 \x03(\x0b\x32\x06.DocV2\x12%\n\rrelatedSearch\x18\x06 \x03(\x0b\x32\x0e.RelatedSearch\x12\x13\n\x0bnextPageUrl\x18\n \x01(\t\"\xa7\x01\n\x1aUserProfileResponseWrapper\x12$\n\x07payload\x18\x01 \x01(\x0b\x32\x13.UserProfilePayload\x12!\n\x08\x63ommands\x18\x02 \x01(\x0b\x32\x0f.ServerCommands\x12\x1b\n\x08preFetch\x18\x03 \x03(\x0b\x32\t.PreFetch\x12#\n\x0cnotification\x18\x04 \x03(\x0b\x32\r.Notification\"<\n\x12UserProfilePayload\x12&\n\x08response\x18\x05 \x01(\x0b\x32\x14.UserProfileResponse\"*\n\x13UserProfileResponse\x12\x13\n\x03\x64oc\x18\x01 \x03(\x0b\x32\x06.DocV2\";\n\x15SearchSuggestResponse\x12\"\n\x05\x65ntry\x18\x01 \x03(\x0b\x32\x13.SearchSuggestEntry\"\x9e\x02\n\x12SearchSuggestEntry\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x16\n\x0esuggestedQuery\x18\x02 \x01(\t\x12:\n\x0eimageContainer\x18\x05 \x01(\x0b\x32\".SearchSuggestEntry.ImageContainer\x12\r\n\x05title\x18\x06 \x01(\t\x12\x46\n\x14packageNameContainer\x18\x08 \x01(\x0b\x32(.SearchSuggestEntry.PackageNameContainer\x1a\"\n\x0eImageContainer\x12\x10\n\x08imageUrl\x18\x05 \x01(\t\x1a+\n\x14PackageNameContainer\x12\x13\n\x0bpackageName\x18\x01 \x01(\t\"?\n\x16TestingProgramResponse\x12%\n\x06result\x18\x02 \x01(\x0b\x32\x15.TestingProgramResult\"?\n\x14TestingProgramResult\x12\'\n\x07\x64\x65tails\x18\x04 \x01(\x0b\x32\x16.TestingProgramDetails\"H\n\x15TestingProgramDetails\x12\r\n\x05\x66lag1\x18\x02 \x01(\x08\x12\n\n\x02id\x18\x03 \x01(\x03\x12\x14\n\x0cunsubscribed\x18\x04 \x01(\x08\"B\n\nLogRequest\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\x12!\n\x19\x64ownloadConfirmationQuery\x18\x02 \x01(\t\"?\n\x15TestingProgramRequest\x12\x13\n\x0bpackageName\x18\x01 \x01(\t\x12\x11\n\tsubscribe\x18\x02 \x01(\x08\"\x84\x01\n\x19UploadDeviceConfigRequest\x12\x36\n\x13\x64\x65viceConfiguration\x18\x01 \x01(\x0b\x32\x19.DeviceConfigurationProto\x12\x14\n\x0cmanufacturer\x18\x02 \x01(\t\x12\x19\n\x11gcmRegistrationId\x18\x03 \x01(\t\"=\n\x1aUploadDeviceConfigResponse\x12\x1f\n\x17uploadDeviceConfigToken\x18\x01 \x01(\t\"\xe7\x03\n\x15\x41ndroidCheckinRequest\x12\x0c\n\x04imei\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x03\x12\x0e\n\x06\x64igest\x18\x03 \x01(\t\x12%\n\x07\x63heckin\x18\x04 \x01(\x0b\x32\x14.AndroidCheckinProto\x12\x14\n\x0c\x64\x65siredBuild\x18\x05 \x01(\t\x12\x0e\n\x06locale\x18\x06 \x01(\t\x12\x11\n\tloggingId\x18\x07 \x01(\x03\x12\x15\n\rmarketCheckin\x18\x08 \x01(\t\x12\x0f\n\x07macAddr\x18\t \x03(\t\x12\x0c\n\x04meid\x18\n \x01(\t\x12\x15\n\raccountCookie\x18\x0b \x03(\t\x12\x10\n\x08timeZone\x18\x0c \x01(\t\x12\x15\n\rsecurityToken\x18\r \x01(\x06\x12\x0f\n\x07version\x18\x0e \x01(\x05\x12\x0f\n\x07otaCert\x18\x0f \x03(\t\x12\x14\n\x0cserialNumber\x18\x10 \x01(\t\x12\x0b\n\x03\x65sn\x18\x11 \x01(\t\x12\x36\n\x13\x64\x65viceConfiguration\x18\x12 \x01(\x0b\x32\x19.DeviceConfigurationProto\x12\x13\n\x0bmacAddrType\x18\x13 \x03(\t\x12\x10\n\x08\x66ragment\x18\x14 \x01(\x05\x12\x10\n\x08userName\x18\x15 \x01(\t\x12\x18\n\x10userSerialNumber\x18\x16 \x01(\x05\"\xfd\x01\n\x16\x41ndroidCheckinResponse\x12\x0f\n\x07statsOk\x18\x01 \x01(\x08\x12#\n\x06intent\x18\x02 \x03(\x0b\x32\x13.AndroidIntentProto\x12\x10\n\x08timeMsec\x18\x03 \x01(\x03\x12\x0e\n\x06\x64igest\x18\x04 \x01(\t\x12\"\n\x07setting\x18\x05 \x03(\x0b\x32\x11.GservicesSetting\x12\x10\n\x08marketOk\x18\x06 \x01(\x08\x12\x11\n\tandroidId\x18\x07 \x01(\x06\x12\x15\n\rsecurityToken\x18\x08 \x01(\x06\x12\x14\n\x0csettingsDiff\x18\t \x01(\x08\x12\x15\n\rdeleteSetting\x18\n \x03(\t\"/\n\x10GservicesSetting\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x94\x02\n\x11\x41ndroidBuildProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07product\x18\x02 \x01(\t\x12\x0f\n\x07\x63\x61rrier\x18\x03 \x01(\t\x12\r\n\x05radio\x18\x04 \x01(\t\x12\x12\n\nbootloader\x18\x05 \x01(\t\x12\x0e\n\x06\x63lient\x18\x06 \x01(\t\x12\x11\n\ttimestamp\x18\x07 \x01(\x03\x12\x16\n\x0egoogleServices\x18\x08 \x01(\x05\x12\x0e\n\x06\x64\x65vice\x18\t \x01(\t\x12\x12\n\nsdkVersion\x18\n \x01(\x05\x12\r\n\x05model\x18\x0b \x01(\t\x12\x14\n\x0cmanufacturer\x18\x0c \x01(\t\x12\x14\n\x0c\x62uildProduct\x18\r \x01(\t\x12\x14\n\x0cotaInstalled\x18\x0e \x01(\x08\"\x82\x02\n\x13\x41ndroidCheckinProto\x12!\n\x05\x62uild\x18\x01 \x01(\x0b\x32\x12.AndroidBuildProto\x12\x17\n\x0flastCheckinMsec\x18\x02 \x01(\x03\x12!\n\x05\x65vent\x18\x03 \x03(\x0b\x32\x12.AndroidEventProto\x12$\n\x04stat\x18\x04 \x03(\x0b\x32\x16.AndroidStatisticProto\x12\x16\n\x0erequestedGroup\x18\x05 \x03(\t\x12\x14\n\x0c\x63\x65llOperator\x18\x06 \x01(\t\x12\x13\n\x0bsimOperator\x18\x07 \x01(\t\x12\x0f\n\x07roaming\x18\x08 \x01(\t\x12\x12\n\nuserNumber\x18\t \x01(\x05\"A\n\x11\x41ndroidEventProto\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x10\n\x08timeMsec\x18\x03 \x01(\x03\"\xaa\x01\n\x12\x41ndroidIntentProto\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\x12\x0f\n\x07\x64\x61taUri\x18\x02 \x01(\t\x12\x10\n\x08mimeType\x18\x03 \x01(\t\x12\x11\n\tjavaClass\x18\x04 \x01(\t\x12(\n\x05\x65xtra\x18\x05 \x03(\n2\x19.AndroidIntentProto.Extra\x1a$\n\x05\x45xtra\x12\x0c\n\x04name\x18\x06 \x01(\t\x12\r\n\x05value\x18\x07 \x01(\t\"@\n\x15\x41ndroidStatisticProto\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12\x0b\n\x03sum\x18\x03 \x01(\x02\"v\n\x12\x43lientLibraryState\x12\x0e\n\x06\x63orpus\x18\x01 \x01(\x05\x12\x13\n\x0bserverToken\x18\x02 \x01(\x0c\x12\x13\n\x0bhashCodeSum\x18\x03 \x01(\x03\x12\x13\n\x0blibrarySize\x18\x04 \x01(\x05\x12\x11\n\tlibraryId\x18\x05 \x01(\t\"\xe2\x01\n\x15\x41ndroidDataUsageProto\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12\x19\n\x11\x63urrentReportMsec\x18\x02 \x01(\x03\x12\x39\n\x17keyToPackageNameMapping\x18\x03 \x03(\x0b\x32\x18.KeyToPackageNameMapping\x12\x31\n\x13payloadLevelAppStat\x18\x04 \x03(\x0b\x32\x14.PayloadLevelAppStat\x12/\n\x12ipLayerNetworkStat\x18\x05 \x03(\x0b\x32\x13.IpLayerNetworkStat\"n\n\x17\x41ndroidUsageStatsReport\x12\x11\n\tandroidId\x18\x01 \x01(\x03\x12\x11\n\tloggingId\x18\x02 \x01(\x03\x12-\n\nusageStats\x18\x03 \x01(\x0b\x32\x19.UsageStatsExtensionProto\"}\n\tAppBucket\x12\x17\n\x0f\x62ucketStartMsec\x18\x01 \x01(\x03\x12\x1a\n\x12\x62ucketDurationMsec\x18\x02 \x01(\x03\x12#\n\x0cstatCounters\x18\x03 \x03(\x0b\x32\r.StatCounters\x12\x16\n\x0eoperationCount\x18\x04 \x01(\x03\"-\n\x0b\x43ounterData\x12\r\n\x05\x62ytes\x18\x01 \x01(\x03\x12\x0f\n\x07packets\x18\x02 \x01(\x03\"b\n\x0eIpLayerAppStat\x12\x12\n\npackageKey\x18\x01 \x01(\x05\x12\x16\n\x0e\x61pplicationTag\x18\x02 \x01(\x05\x12$\n\x10ipLayerAppBucket\x18\x03 \x03(\x0b\x32\n.AppBucket\"\x8f\x01\n\x14IpLayerNetworkBucket\x12\x17\n\x0f\x62ucketStartMsec\x18\x01 \x01(\x03\x12\x1a\n\x12\x62ucketDurationMsec\x18\x02 \x01(\x03\x12#\n\x0cstatCounters\x18\x03 \x03(\x0b\x32\r.StatCounters\x12\x1d\n\x15networkActiveDuration\x18\x04 \x01(\x03\"\x98\x01\n\x12IpLayerNetworkStat\x12\x16\n\x0enetworkDetails\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\x05\x12\x33\n\x14ipLayerNetworkBucket\x18\x03 \x03(\x0b\x32\x15.IpLayerNetworkBucket\x12\'\n\x0eipLayerAppStat\x18\x04 \x03(\x0b\x32\x0f.IpLayerAppStat\"g\n\x17KeyToPackageNameMapping\x12\x12\n\npackageKey\x18\x01 \x01(\x05\x12\x0f\n\x07uidName\x18\x02 \x01(\t\x12\'\n\x11sharedPackageList\x18\x03 \x03(\x0b\x32\x0c.PackageInfo\"3\n\x0bPackageInfo\x12\x0f\n\x07pkgName\x18\x01 \x01(\t\x12\x13\n\x0bversionCode\x18\x02 \x01(\x05\"l\n\x13PayloadLevelAppStat\x12\x12\n\npackageKey\x18\x01 \x01(\x05\x12\x16\n\x0e\x61pplicationTag\x18\x02 \x01(\x05\x12)\n\x15payloadLevelAppBucket\x18\x03 \x03(\x0b\x32\n.AppBucket\"h\n\x0cStatCounters\x12\x14\n\x0cnetworkProto\x18\x01 \x01(\x05\x12\x11\n\tdirection\x18\x02 \x01(\x05\x12!\n\x0b\x63ounterData\x18\x03 \x01(\x0b\x32\x0c.CounterData\x12\x0c\n\x04\x66gBg\x18\x04 \x01(\x05\"E\n\x18UsageStatsExtensionProto\x12)\n\tdataUsage\x18\x01 \x01(\x0b\x32\x16.AndroidDataUsageProto\"l\n\rSearchCluster\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0c\n\x04int1\x18\x03 \x01(\x03\x12\x0c\n\x04int2\x18\x04 \x01(\x03\x12\x10\n\x08\x63\x61tegory\x18\x05 \x01(\t\x12\x13\n\x03\x64oc\x18\x0b \x03(\x0b\x32\x06.DocV2') ) @@ -1950,6 +1950,13 @@ _OFFER = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='saleEnds', full_name='Offer.saleEnds', index=14, + number=31, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -1963,7 +1970,7 @@ _OFFER = _descriptor.Descriptor( oneofs=[ ], serialized_start=4765, - serialized_end=5149, + serialized_end=5167, ) @@ -2021,8 +2028,8 @@ _OWNERSHIPINFO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5152, - serialized_end=5329, + serialized_start=5170, + serialized_end=5347, ) @@ -2059,8 +2066,8 @@ _RENTALTERMS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5331, - serialized_end=5403, + serialized_start=5349, + serialized_end=5421, ) @@ -2097,8 +2104,8 @@ _SUBSCRIPTIONTERMS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5405, - serialized_end=5496, + serialized_start=5423, + serialized_end=5514, ) @@ -2135,8 +2142,8 @@ _TIMEPERIOD = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5498, - serialized_end=5539, + serialized_start=5516, + serialized_end=5557, ) @@ -2173,8 +2180,8 @@ _BILLINGADDRESSSPEC = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5541, - serialized_end=5612, + serialized_start=5559, + serialized_end=5630, ) @@ -2211,8 +2218,8 @@ _CARRIERBILLINGCREDENTIALS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5614, - serialized_end=5676, + serialized_start=5632, + serialized_end=5694, ) @@ -2291,8 +2298,8 @@ _CARRIERBILLINGINSTRUMENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5679, - serialized_end=5976, + serialized_start=5697, + serialized_end=5994, ) @@ -2357,8 +2364,8 @@ _CARRIERBILLINGINSTRUMENTSTATUS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5979, - serialized_end=6181, + serialized_start=5997, + serialized_end=6199, ) @@ -2409,8 +2416,8 @@ _CARRIERTOS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6184, - serialized_end=6326, + serialized_start=6202, + serialized_end=6344, ) @@ -2447,8 +2454,8 @@ _CARRIERTOSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6328, - serialized_end=6375, + serialized_start=6346, + serialized_end=6393, ) @@ -2513,8 +2520,8 @@ _CREDITCARDINSTRUMENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6378, - serialized_end=6540, + serialized_start=6396, + serialized_end=6558, ) @@ -2551,8 +2558,8 @@ _EFEPARAM = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6542, - serialized_end=6580, + serialized_start=6560, + serialized_end=6598, ) @@ -2589,8 +2596,8 @@ _INPUTVALIDATIONERROR = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6582, - serialized_end=6646, + serialized_start=6600, + serialized_end=6664, ) @@ -2669,8 +2676,8 @@ _INSTRUMENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6649, - serialized_end=6971, + serialized_start=6667, + serialized_end=6989, ) @@ -2707,8 +2714,8 @@ _PASSWORDPROMPT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6973, - serialized_end=7032, + serialized_start=6991, + serialized_end=7050, ) @@ -2773,8 +2780,8 @@ _CONTAINERMETADATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7035, - serialized_end=7181, + serialized_start=7053, + serialized_end=7199, ) @@ -2811,8 +2818,8 @@ _DEBUGINFO_TIMING = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7248, - serialized_end=7288, + serialized_start=7266, + serialized_end=7306, ) _DEBUGINFO = _descriptor.Descriptor( @@ -2848,8 +2855,8 @@ _DEBUGINFO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7183, - serialized_end=7288, + serialized_start=7201, + serialized_end=7306, ) @@ -2879,8 +2886,8 @@ _BULKDETAILSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7290, - serialized_end=7329, + serialized_start=7308, + serialized_end=7347, ) @@ -2917,8 +2924,8 @@ _BULKDETAILSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7331, - serialized_end=7392, + serialized_start=7349, + serialized_end=7410, ) @@ -2948,8 +2955,8 @@ _BULKDETAILSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7394, - serialized_end=7449, + serialized_start=7412, + serialized_end=7467, ) @@ -3014,8 +3021,8 @@ _DETAILSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7452, - serialized_end=7612, + serialized_start=7470, + serialized_end=7630, ) @@ -3052,8 +3059,8 @@ _BADGE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7614, - serialized_end=7653, + serialized_start=7632, + serialized_end=7671, ) @@ -3195,8 +3202,8 @@ _DEVICECONFIGURATIONPROTO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7656, - serialized_end=8093, + serialized_start=7674, + serialized_end=8111, ) @@ -3345,8 +3352,8 @@ _DOCUMENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=8096, - serialized_end=8607, + serialized_start=8114, + serialized_end=8625, ) @@ -3439,8 +3446,8 @@ _DOCUMENTVARIANT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=8610, - serialized_end=8867, + serialized_start=8628, + serialized_end=8885, ) @@ -3477,8 +3484,8 @@ _IMAGE_DIMENSION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9108, - serialized_end=9150, + serialized_start=9126, + serialized_end=9168, ) _IMAGE_CITATION = _descriptor.Descriptor( @@ -3514,8 +3521,8 @@ _IMAGE_CITATION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9152, - serialized_end=9199, + serialized_start=9170, + serialized_end=9217, ) _IMAGE = _descriptor.Descriptor( @@ -3600,8 +3607,8 @@ _IMAGE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=8870, - serialized_end=9199, + serialized_start=8888, + serialized_end=9217, ) @@ -3645,8 +3652,8 @@ _TRANSLATEDTEXT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9201, - serialized_end=9275, + serialized_start=9219, + serialized_end=9293, ) @@ -3697,8 +3704,8 @@ _PLUSONEDATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9277, - serialized_end=9382, + serialized_start=9295, + serialized_end=9400, ) @@ -3735,8 +3742,8 @@ _PLUSPERSON = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9384, - serialized_end=9442, + serialized_start=9402, + serialized_end=9460, ) @@ -3780,8 +3787,8 @@ _ALBUMDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9444, - serialized_end=9543, + serialized_start=9462, + serialized_end=9561, ) @@ -3958,8 +3965,8 @@ _APPDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9546, - serialized_end=10112, + serialized_start=9564, + serialized_end=10130, ) @@ -4010,8 +4017,8 @@ _DEPENDENCIES = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=10114, - serialized_end=10215, + serialized_start=10132, + serialized_end=10233, ) @@ -4055,8 +4062,8 @@ _DEPENDENCY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=10217, - serialized_end=10285, + serialized_start=10235, + serialized_end=10303, ) @@ -4100,8 +4107,8 @@ _TESTINGPROGRAMINFO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=10287, - serialized_end=10377, + serialized_start=10305, + serialized_end=10395, ) @@ -4131,8 +4138,8 @@ _EARLYACCESSINFO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=10379, - serialized_end=10411, + serialized_start=10397, + serialized_end=10429, ) @@ -4176,8 +4183,8 @@ _ARTISTDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=10413, - serialized_end=10507, + serialized_start=10431, + serialized_end=10525, ) @@ -4221,8 +4228,8 @@ _ARTISTEXTERNALLINKS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=10509, - serialized_end=10607, + serialized_start=10527, + serialized_end=10625, ) @@ -4322,8 +4329,8 @@ _DOCUMENTDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=10610, - serialized_end=11064, + serialized_start=10628, + serialized_end=11082, ) @@ -4367,8 +4374,8 @@ _FILEMETADATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11066, - serialized_end=11133, + serialized_start=11084, + serialized_end=11151, ) @@ -4419,8 +4426,8 @@ _MAGAZINEDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11136, - serialized_end=11284, + serialized_start=11154, + serialized_end=11302, ) @@ -4499,8 +4506,8 @@ _MUSICDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11287, - serialized_end=11474, + serialized_start=11305, + serialized_end=11492, ) @@ -4565,8 +4572,8 @@ _SONGDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11477, - serialized_end=11635, + serialized_start=11495, + serialized_end=11653, ) @@ -4596,8 +4603,8 @@ _SUBSCRIPTIONDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11637, - serialized_end=11686, + serialized_start=11655, + serialized_end=11704, ) @@ -4655,8 +4662,8 @@ _TRAILER = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11688, - serialized_end=11789, + serialized_start=11706, + serialized_end=11807, ) @@ -4700,8 +4707,8 @@ _TVEPISODEDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11791, - serialized_end=11878, + serialized_start=11809, + serialized_end=11896, ) @@ -4752,8 +4759,8 @@ _TVSEASONDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11880, - serialized_end=11986, + serialized_start=11898, + serialized_end=12004, ) @@ -4804,8 +4811,8 @@ _TVSHOWDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11988, - serialized_end=12081, + serialized_start=12006, + serialized_end=12099, ) @@ -4849,8 +4856,8 @@ _VIDEOCREDIT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=12083, - serialized_end=12146, + serialized_start=12101, + serialized_end=12164, ) @@ -4936,8 +4943,8 @@ _VIDEODETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=12149, - serialized_end=12368, + serialized_start=12167, + serialized_end=12386, ) @@ -4974,8 +4981,8 @@ _VIDEORENTALTERM_TERM = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=12495, - serialized_end=12531, + serialized_start=12513, + serialized_end=12549, ) _VIDEORENTALTERM = _descriptor.Descriptor( @@ -5025,8 +5032,8 @@ _VIDEORENTALTERM = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=12371, - serialized_end=12531, + serialized_start=12389, + serialized_end=12549, ) @@ -5126,8 +5133,8 @@ _BUCKET = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=12534, - serialized_end=12783, + serialized_start=12552, + serialized_end=12801, ) @@ -5164,8 +5171,8 @@ _LISTRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=12785, - serialized_end=12857, + serialized_start=12803, + serialized_end=12875, ) @@ -5307,8 +5314,8 @@ _DOCV1 = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=12860, - serialized_end=13264, + serialized_start=12878, + serialized_end=13282, ) @@ -5492,8 +5499,8 @@ _DOCV2 = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13267, - serialized_end=13852, + serialized_start=13285, + serialized_end=13870, ) @@ -5523,8 +5530,8 @@ _UNKNOWN25 = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13854, - serialized_end=13895, + serialized_start=13872, + serialized_end=13913, ) @@ -5561,8 +5568,8 @@ _UNKNOWN25ITEM = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13897, - serialized_end=13967, + serialized_start=13915, + serialized_end=13985, ) @@ -5592,8 +5599,8 @@ _UNKNOWN25CONTAINER = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13969, - serialized_end=14004, + serialized_start=13987, + serialized_end=14022, ) @@ -5658,8 +5665,8 @@ _RELATEDLINKS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14007, - serialized_end=14224, + serialized_start=14025, + serialized_end=14242, ) @@ -5689,8 +5696,8 @@ _RELATEDLINKSUNKNOWN1 = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14226, - serialized_end=14289, + serialized_start=14244, + serialized_end=14307, ) @@ -5720,8 +5727,8 @@ _RELATEDLINKSUNKNOWN2 = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14291, - serialized_end=14334, + serialized_start=14309, + serialized_end=14352, ) @@ -5765,8 +5772,8 @@ _RATED = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14336, - serialized_end=14408, + serialized_start=14354, + serialized_end=14426, ) @@ -5810,8 +5817,8 @@ _RELATEDLINK = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14410, - serialized_end=14466, + serialized_start=14428, + serialized_end=14484, ) @@ -5848,8 +5855,8 @@ _CATEGORYINFO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14468, - serialized_end=14520, + serialized_start=14486, + serialized_end=14538, ) @@ -5914,8 +5921,8 @@ _ENCRYPTEDSUBSCRIBERINFO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14523, - serialized_end=14676, + serialized_start=14541, + serialized_end=14694, ) @@ -5966,8 +5973,8 @@ _AVAILABILITY_PERDEVICEAVAILABILITYRESTRICTION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14982, - serialized_end=15124, + serialized_start=15000, + serialized_end=15142, ) _AVAILABILITY = _descriptor.Descriptor( @@ -6045,8 +6052,8 @@ _AVAILABILITY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14679, - serialized_end=15124, + serialized_start=14697, + serialized_end=15142, ) @@ -6076,8 +6083,8 @@ _FILTEREVALUATIONINFO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15126, - serialized_end=15189, + serialized_start=15144, + serialized_end=15207, ) @@ -6177,8 +6184,8 @@ _RULE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15192, - serialized_end=15404, + serialized_start=15210, + serialized_end=15422, ) @@ -6236,8 +6243,8 @@ _RULEEVALUATION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15407, - serialized_end=15548, + serialized_start=15425, + serialized_end=15566, ) @@ -6281,8 +6288,8 @@ _LIBRARYAPPDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15550, - serialized_end=15668, + serialized_start=15568, + serialized_end=15686, ) @@ -6319,8 +6326,8 @@ _LIBRARYINAPPDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15670, - serialized_end=15738, + serialized_start=15688, + serialized_end=15756, ) @@ -6392,8 +6399,8 @@ _LIBRARYMUTATION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15741, - serialized_end=15981, + serialized_start=15759, + serialized_end=15999, ) @@ -6444,8 +6451,8 @@ _LIBRARYSUBSCRIPTIONDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15984, - serialized_end=16133, + serialized_start=16002, + serialized_end=16151, ) @@ -6510,8 +6517,8 @@ _LIBRARYUPDATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=16136, - serialized_end=16276, + serialized_start=16154, + serialized_end=16294, ) @@ -6548,8 +6555,8 @@ _ANDROIDAPPNOTIFICATIONDATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=16278, - serialized_end=16344, + serialized_start=16296, + serialized_end=16362, ) @@ -6586,8 +6593,8 @@ _INAPPNOTIFICATIONDATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=16346, - serialized_end=16423, + serialized_start=16364, + serialized_end=16441, ) @@ -6617,8 +6624,8 @@ _LIBRARYDIRTYDATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=16425, - serialized_end=16460, + serialized_start=16443, + serialized_end=16478, ) @@ -6739,8 +6746,8 @@ _NOTIFICATION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=16463, - serialized_end=16998, + serialized_start=16481, + serialized_end=17016, ) @@ -6777,8 +6784,8 @@ _PURCHASEDECLINEDDATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17000, - serialized_end=17064, + serialized_start=17018, + serialized_end=17082, ) @@ -6808,8 +6815,8 @@ _PURCHASEREMOVALDATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17066, - serialized_end=17106, + serialized_start=17084, + serialized_end=17124, ) @@ -6867,8 +6874,8 @@ _USERNOTIFICATIONDATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17109, - serialized_end=17245, + serialized_start=17127, + serialized_end=17263, ) @@ -6975,8 +6982,8 @@ _AGGREGATERATING = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17248, - serialized_end=17543, + serialized_start=17266, + serialized_end=17561, ) @@ -7097,8 +7104,8 @@ _PAYLOAD = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17546, - serialized_end=18201, + serialized_start=17564, + serialized_end=18219, ) @@ -7156,8 +7163,8 @@ _PREFETCH = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=18203, - serialized_end=18306, + serialized_start=18221, + serialized_end=18324, ) @@ -7208,8 +7215,8 @@ _RESPONSEWRAPPER = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=18309, - serialized_end=18454, + serialized_start=18327, + serialized_end=18472, ) @@ -7253,8 +7260,8 @@ _SERVERCOMMANDS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=18456, - serialized_end=18549, + serialized_start=18474, + serialized_end=18567, ) @@ -7291,8 +7298,8 @@ _GETREVIEWSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=18551, - serialized_end=18619, + serialized_start=18569, + serialized_end=18637, ) @@ -7413,8 +7420,8 @@ _REVIEW = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=18622, - serialized_end=18917, + serialized_start=18640, + serialized_end=18935, ) @@ -7451,8 +7458,8 @@ _AUTHOR = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=18919, - serialized_end=18964, + serialized_start=18937, + serialized_end=18982, ) @@ -7531,8 +7538,8 @@ _AUTHOR2 = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=18967, - serialized_end=19141, + serialized_start=18985, + serialized_end=19159, ) @@ -7590,8 +7597,8 @@ _AVATAR = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19143, - serialized_end=19237, + serialized_start=19161, + serialized_end=19255, ) @@ -7635,8 +7642,8 @@ _REVIEWRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19239, - serialized_end=19347, + serialized_start=19257, + serialized_end=19365, ) @@ -7694,8 +7701,8 @@ _RELATEDSEARCH = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19349, - serialized_end=19452, + serialized_start=19367, + serialized_end=19470, ) @@ -7767,8 +7774,8 @@ _SEARCHRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19455, - serialized_end=19648, + serialized_start=19473, + serialized_end=19666, ) @@ -7819,8 +7826,8 @@ _USERPROFILERESPONSEWRAPPER = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19651, - serialized_end=19818, + serialized_start=19669, + serialized_end=19836, ) @@ -7850,8 +7857,8 @@ _USERPROFILEPAYLOAD = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19820, - serialized_end=19880, + serialized_start=19838, + serialized_end=19898, ) @@ -7881,8 +7888,8 @@ _USERPROFILERESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19882, - serialized_end=19924, + serialized_start=19900, + serialized_end=19942, ) @@ -7912,8 +7919,8 @@ _SEARCHSUGGESTRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19926, - serialized_end=19985, + serialized_start=19944, + serialized_end=20003, ) @@ -7943,8 +7950,8 @@ _SEARCHSUGGESTENTRY_IMAGECONTAINER = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20195, - serialized_end=20229, + serialized_start=20213, + serialized_end=20247, ) _SEARCHSUGGESTENTRY_PACKAGENAMECONTAINER = _descriptor.Descriptor( @@ -7973,8 +7980,8 @@ _SEARCHSUGGESTENTRY_PACKAGENAMECONTAINER = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20231, - serialized_end=20274, + serialized_start=20249, + serialized_end=20292, ) _SEARCHSUGGESTENTRY = _descriptor.Descriptor( @@ -8031,8 +8038,8 @@ _SEARCHSUGGESTENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19988, - serialized_end=20274, + serialized_start=20006, + serialized_end=20292, ) @@ -8062,8 +8069,8 @@ _TESTINGPROGRAMRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20276, - serialized_end=20339, + serialized_start=20294, + serialized_end=20357, ) @@ -8093,8 +8100,8 @@ _TESTINGPROGRAMRESULT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20341, - serialized_end=20404, + serialized_start=20359, + serialized_end=20422, ) @@ -8138,8 +8145,8 @@ _TESTINGPROGRAMDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20406, - serialized_end=20478, + serialized_start=20424, + serialized_end=20496, ) @@ -8176,8 +8183,8 @@ _LOGREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20480, - serialized_end=20546, + serialized_start=20498, + serialized_end=20564, ) @@ -8214,8 +8221,8 @@ _TESTINGPROGRAMREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20548, - serialized_end=20611, + serialized_start=20566, + serialized_end=20629, ) @@ -8259,8 +8266,8 @@ _UPLOADDEVICECONFIGREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20614, - serialized_end=20746, + serialized_start=20632, + serialized_end=20764, ) @@ -8290,8 +8297,8 @@ _UPLOADDEVICECONFIGRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20748, - serialized_end=20809, + serialized_start=20766, + serialized_end=20827, ) @@ -8468,8 +8475,8 @@ _ANDROIDCHECKINREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20812, - serialized_end=21299, + serialized_start=20830, + serialized_end=21317, ) @@ -8562,8 +8569,8 @@ _ANDROIDCHECKINRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21302, - serialized_end=21555, + serialized_start=21320, + serialized_end=21573, ) @@ -8600,8 +8607,8 @@ _GSERVICESSETTING = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21557, - serialized_end=21604, + serialized_start=21575, + serialized_end=21622, ) @@ -8722,8 +8729,8 @@ _ANDROIDBUILDPROTO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21607, - serialized_end=21883, + serialized_start=21625, + serialized_end=21901, ) @@ -8809,8 +8816,8 @@ _ANDROIDCHECKINPROTO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21886, - serialized_end=22144, + serialized_start=21904, + serialized_end=22162, ) @@ -8854,8 +8861,8 @@ _ANDROIDEVENTPROTO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=22146, - serialized_end=22211, + serialized_start=22164, + serialized_end=22229, ) @@ -8892,8 +8899,8 @@ _ANDROIDINTENTPROTO_EXTRA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=22348, - serialized_end=22384, + serialized_start=22366, + serialized_end=22402, ) _ANDROIDINTENTPROTO = _descriptor.Descriptor( @@ -8950,8 +8957,8 @@ _ANDROIDINTENTPROTO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=22214, - serialized_end=22384, + serialized_start=22232, + serialized_end=22402, ) @@ -8995,8 +9002,8 @@ _ANDROIDSTATISTICPROTO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=22386, - serialized_end=22450, + serialized_start=22404, + serialized_end=22468, ) @@ -9054,8 +9061,8 @@ _CLIENTLIBRARYSTATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=22452, - serialized_end=22570, + serialized_start=22470, + serialized_end=22588, ) @@ -9113,8 +9120,8 @@ _ANDROIDDATAUSAGEPROTO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=22573, - serialized_end=22799, + serialized_start=22591, + serialized_end=22817, ) @@ -9158,8 +9165,8 @@ _ANDROIDUSAGESTATSREPORT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=22801, - serialized_end=22911, + serialized_start=22819, + serialized_end=22929, ) @@ -9210,8 +9217,8 @@ _APPBUCKET = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=22913, - serialized_end=23038, + serialized_start=22931, + serialized_end=23056, ) @@ -9248,8 +9255,8 @@ _COUNTERDATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23040, - serialized_end=23085, + serialized_start=23058, + serialized_end=23103, ) @@ -9293,8 +9300,8 @@ _IPLAYERAPPSTAT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23087, - serialized_end=23185, + serialized_start=23105, + serialized_end=23203, ) @@ -9345,8 +9352,8 @@ _IPLAYERNETWORKBUCKET = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23188, - serialized_end=23331, + serialized_start=23206, + serialized_end=23349, ) @@ -9397,8 +9404,8 @@ _IPLAYERNETWORKSTAT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23334, - serialized_end=23486, + serialized_start=23352, + serialized_end=23504, ) @@ -9442,8 +9449,8 @@ _KEYTOPACKAGENAMEMAPPING = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23488, - serialized_end=23591, + serialized_start=23506, + serialized_end=23609, ) @@ -9480,8 +9487,8 @@ _PACKAGEINFO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23593, - serialized_end=23644, + serialized_start=23611, + serialized_end=23662, ) @@ -9525,8 +9532,8 @@ _PAYLOADLEVELAPPSTAT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23646, - serialized_end=23754, + serialized_start=23664, + serialized_end=23772, ) @@ -9577,8 +9584,8 @@ _STATCOUNTERS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23756, - serialized_end=23860, + serialized_start=23774, + serialized_end=23878, ) @@ -9608,8 +9615,8 @@ _USAGESTATSEXTENSIONPROTO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23862, - serialized_end=23931, + serialized_start=23880, + serialized_end=23949, ) @@ -9674,8 +9681,8 @@ _SEARCHCLUSTER = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23933, - serialized_end=24041, + serialized_start=23951, + serialized_end=24059, ) _ANDROIDAPPDELIVERYDATA.fields_by_name['additionalFile'].message_type = _APPFILEMETADATA @@ -11233,4 +11240,4 @@ SearchCluster = _reflection.GeneratedProtocolMessageType('SearchCluster', (_mess _sym_db.RegisterMessage(SearchCluster) -# @@protoc_insertion_point(module_scope) +# @@protoc_insertion_point(module_scope) \ No newline at end of file diff --git a/gpapi/utils.py b/gpapi/utils.py index b5d3e73..8473d23 100644 --- a/gpapi/utils.py +++ b/gpapi/utils.py @@ -8,11 +8,14 @@ def fromDocToDictionary(app): return {"docId": app.docid, "title": app.title, "author": app.creator, + "description": app.descriptionHtml, + "recentChanges": app.details.appDetails.recentChangesHtml, "offer": [{"micros": o.micros, "currencyCode": o.currencyCode, "formattedAmount": o.formattedAmount, "checkoutFlowRequired": o.checkoutFlowRequired, - "offerType": o.offerType} + "offerType": o.offerType, + "saleEnds": o.saleEnds} for o in app.offer], "images": [{"imageType": img.imageType, "width": img.dimension.width @@ -25,6 +28,7 @@ def fromDocToDictionary(app): "supportsFifeUrlOptions": img.supportsFifeUrlOptions} for img in app.image], "versionCode": app.details.appDetails.versionCode, + "versionString": app.details.appDetails.versionString, "installationSize": app.details.appDetails.installationSize, "numDownloads": app.details.appDetails.numDownloads, "uploadDate": app.details.appDetails.uploadDate, @@ -98,4 +102,4 @@ def hasDoc(obj): except TypeError: existance = False - return existance + return existance \ No newline at end of file