Created
May 29, 2018 18:56
-
-
Save davidwtbuxton/f0f1c5102384d78a1b747791ea1d1254 to your computer and use it in GitHub Desktop.
Latest changes from Google App Engine SDK 1.9.70
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -u -r 1.9.69/google_appengine/VERSION 1.9.70/google_appengine/VERSION | |
--- 1.9.69/google_appengine/VERSION 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/VERSION 2018-05-29 11:47:31.000000000 -0700 | |
@@ -1,5 +1,5 @@ | |
-release: "1.9.69" | |
-timestamp: 1523300407 | |
+release: "1.9.70" | |
+timestamp: 1526501368 | |
api_versions: ['1'] | |
supported_api_versions: | |
python: | |
diff -u -r 1.9.69/google_appengine/google/appengine/api/app_identity/app_identity_service_pb.py 1.9.70/google_appengine/google/appengine/api/app_identity/app_identity_service_pb.py | |
--- 1.9.69/google_appengine/google/appengine/api/app_identity/app_identity_service_pb.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/api/app_identity/app_identity_service_pb.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -169,7 +169,7 @@ | |
_STYLE_CONTENT_TYPE = """""" | |
_PROTO_DESCRIPTOR_NAME = 'apphosting.AppIdentityServiceError' | |
_SERIALIZED_DESCRIPTOR = array.array('B') | |
- _SERIALIZED_DESCRIPTOR.fromstring(base64.decodestring("WjZhcHBob3N0aW5nL2FwaS9hcHBfaWRlbnRpdHkvYXBwX2lkZW50aXR5X3NlcnZpY2UucHJvdG8KImFwcGhvc3RpbmcuQXBwSWRlbnRpdHlTZXJ2aWNlRXJyb3JzeglFcnJvckNvZGWLAZIBB1NVQ0NFU1OYAQCMAYsBkgENVU5LTk9XTl9TQ09QRZgBCYwBiwGSAQ5CTE9CX1RPT19MQVJHRZgB6AeMAYsBkgERREVBRExJTkVfRVhDRUVERUSYAekHjAGLAZIBD05PVF9BX1ZBTElEX0FQUJgB6geMAYsBkgENVU5LTk9XTl9FUlJPUpgB6weMAYsBkgEZR0FJQU1JTlRfTk9UX0lOSVRJQUlMSVpFRJgB7AeMAYsBkgELTk9UX0FMTE9XRUSYAe0HjAGLAZIBD05PVF9JTVBMRU1FTlRFRJgB7geMAXS6AekMCjZhcHBob3N0aW5nL2FwaS9hcHBfaWRlbnRpdHkvYXBwX2lkZW50aXR5X3NlcnZpY2UucHJvdG8SCmFwcGhvc3Rpbmci5gEKF0FwcElkZW50aXR5U2VydmljZUVycm9yIsoBCglFcnJvckNvZGUSCwoHU1VDQ0VTUxAAEhEKDVVOS05PV05fU0NPUEUQCRITCg5CTE9CX1RPT19MQVJHRRDoBxIWChFERUFETElORV9FWENFRURFRBDpBxIUCg9OT1RfQV9WQUxJRF9BUFAQ6gcSEgoNVU5LTk9XTl9FUlJPUhDrBxIeChlHQUlBTUlOVF9OT1RfSU5JVElBSUxJWkVEEOwHEhAKC05PVF9BTExPV0VEEO0HEhQKD05PVF9JTVBMRU1FTlRFRBDuByIqChFTaWduRm9yQXBwUmVxdWVzdBIVCg1ieXRlc190b19zaWduGAEgASgMIj8KElNpZ25Gb3JBcHBSZXNwb25zZRIQCghrZXlfbmFtZRgBIAEoCRIXCg9zaWduYXR1cmVfYnl0ZXMYAiABKAwiIwohR2V0UHVibGljQ2VydGlmaWNhdGVGb3JBcHBSZXF1ZXN0IkMKEVB1YmxpY0NlcnRpZmljYXRlEhAKCGtleV9uYW1lGAEgASgJEhwKFHg1MDlfY2VydGlmaWNhdGVfcGVtGAIgASgJIo0BCiJHZXRQdWJsaWNDZXJ0aWZpY2F0ZUZvckFwcFJlc3BvbnNlEj4KF3B1YmxpY19jZXJ0aWZpY2F0ZV9saXN0GAEgAygLMh0uYXBwaG9zdGluZy5QdWJsaWNDZXJ0aWZpY2F0ZRInCh9tYXhfY2xpZW50X2NhY2hlX3RpbWVfaW5fc2Vjb25kGAIgASgDIh4KHEdldFNlcnZpY2VBY2NvdW50TmFtZVJlcXVlc3QiPQodR2V0U2VydmljZUFjY291bnROYW1lUmVzcG9uc2USHAoUc2VydmljZV9hY2NvdW50X25hbWUYASABKAkiYAoVR2V0QWNjZXNzVG9rZW5SZXF1ZXN0Eg0KBXNjb3BlGAEgAygJEhoKEnNlcnZpY2VfYWNjb3VudF9pZBgCIAEoAxIcChRzZXJ2aWNlX2FjY291bnRfbmFtZRgDIAEoCSJHChZHZXRBY2Nlc3NUb2tlblJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIXCg9leHBpcmF0aW9uX3RpbWUYAiABKAMiIAoeR2V0RGVmYXVsdEdjc0J1Y2tldE5hbWVSZXF1ZXN0IkIKH0dldERlZmF1bHRHY3NCdWNrZXROYW1lUmVzcG9uc2USHwoXZGVmYXVsdF9nY3NfYnVja2V0X25hbWUYASABKAkyoAQKDlNpZ25pbmdTZXJ2aWNlEk0KClNpZ25Gb3JBcHASHS5hcHBob3N0aW5nLlNpZ25Gb3JBcHBSZXF1ZXN0Gh4uYXBwaG9zdGluZy5TaWduRm9yQXBwUmVzcG9uc2UiABJ+ChtHZXRQdWJsaWNDZXJ0aWZpY2F0ZXNGb3JBcHASLS5hcHBob3N0aW5nLkdldFB1YmxpY0NlcnRpZmljYXRlRm9yQXBwUmVxdWVzdBouLmFwcGhvc3RpbmcuR2V0UHVibGljQ2VydGlmaWNhdGVGb3JBcHBSZXNwb25zZSIAEm4KFUdldFNlcnZpY2VBY2NvdW50TmFtZRIoLmFwcGhvc3RpbmcuR2V0U2VydmljZUFjY291bnROYW1lUmVxdWVzdBopLmFwcGhvc3RpbmcuR2V0U2VydmljZUFjY291bnROYW1lUmVzcG9uc2UiABJZCg5HZXRBY2Nlc3NUb2tlbhIhLmFwcGhvc3RpbmcuR2V0QWNjZXNzVG9rZW5SZXF1ZXN0GiIuYXBwaG9zdGluZy5HZXRBY2Nlc3NUb2tlblJlc3BvbnNlIgASdAoXR2V0RGVmYXVsdEdjc0J1Y2tldE5hbWUSKi5hcHBob3N0aW5nLkdldERlZmF1bHRHY3NCdWNrZXROYW1lUmVxdWVzdBorLmFwcGhvc3RpbmcuR2V0RGVmYXVsdEdjc0J1Y2tldE5hbWVSZXNwb25zZSIAQkAKJGNvbS5nb29nbGUuYXBwZW5naW5lLmFwaS5hcHBpZGVudGl0eSABKAJCFEFwcElkZW50aXR5U2VydmljZVBi")) | |
+ _SERIALIZED_DESCRIPTOR.fromstring(base64.decodestring("WjZhcHBob3N0aW5nL2FwaS9hcHBfaWRlbnRpdHkvYXBwX2lkZW50aXR5X3NlcnZpY2UucHJvdG8KImFwcGhvc3RpbmcuQXBwSWRlbnRpdHlTZXJ2aWNlRXJyb3JzeglFcnJvckNvZGWLAZIBB1NVQ0NFU1OYAQCMAYsBkgENVU5LTk9XTl9TQ09QRZgBCYwBiwGSAQ5CTE9CX1RPT19MQVJHRZgB6AeMAYsBkgERREVBRExJTkVfRVhDRUVERUSYAekHjAGLAZIBD05PVF9BX1ZBTElEX0FQUJgB6geMAYsBkgENVU5LTk9XTl9FUlJPUpgB6weMAYsBkgEZR0FJQU1JTlRfTk9UX0lOSVRJQUlMSVpFRJgB7AeMAYsBkgELTk9UX0FMTE9XRUSYAe0HjAGLAZIBD05PVF9JTVBMRU1FTlRFRJgB7geMAXS6AecMCjZhcHBob3N0aW5nL2FwaS9hcHBfaWRlbnRpdHkvYXBwX2lkZW50aXR5X3NlcnZpY2UucHJvdG8SCmFwcGhvc3Rpbmci5gEKF0FwcElkZW50aXR5U2VydmljZUVycm9yIsoBCglFcnJvckNvZGUSCwoHU1VDQ0VTUxAAEhEKDVVOS05PV05fU0NPUEUQCRITCg5CTE9CX1RPT19MQVJHRRDoBxIWChFERUFETElORV9FWENFRURFRBDpBxIUCg9OT1RfQV9WQUxJRF9BUFAQ6gcSEgoNVU5LTk9XTl9FUlJPUhDrBxIeChlHQUlBTUlOVF9OT1RfSU5JVElBSUxJWkVEEOwHEhAKC05PVF9BTExPV0VEEO0HEhQKD05PVF9JTVBMRU1FTlRFRBDuByIqChFTaWduRm9yQXBwUmVxdWVzdBIVCg1ieXRlc190b19zaWduGAEgASgMIj8KElNpZ25Gb3JBcHBSZXNwb25zZRIQCghrZXlfbmFtZRgBIAEoCRIXCg9zaWduYXR1cmVfYnl0ZXMYAiABKAwiIwohR2V0UHVibGljQ2VydGlmaWNhdGVGb3JBcHBSZXF1ZXN0IkMKEVB1YmxpY0NlcnRpZmljYXRlEhAKCGtleV9uYW1lGAEgASgJEhwKFHg1MDlfY2VydGlmaWNhdGVfcGVtGAIgASgJIo0BCiJHZXRQdWJsaWNDZXJ0aWZpY2F0ZUZvckFwcFJlc3BvbnNlEj4KF3B1YmxpY19jZXJ0aWZpY2F0ZV9saXN0GAEgAygLMh0uYXBwaG9zdGluZy5QdWJsaWNDZXJ0aWZpY2F0ZRInCh9tYXhfY2xpZW50X2NhY2hlX3RpbWVfaW5fc2Vjb25kGAIgASgDIh4KHEdldFNlcnZpY2VBY2NvdW50TmFtZVJlcXVlc3QiPQodR2V0U2VydmljZUFjY291bnROYW1lUmVzcG9uc2USHAoUc2VydmljZV9hY2NvdW50X25hbWUYASABKAkiYAoVR2V0QWNjZXNzVG9rZW5SZXF1ZXN0Eg0KBXNjb3BlGAEgAygJEhoKEnNlcnZpY2VfYWNjb3VudF9pZBgCIAEoAxIcChRzZXJ2aWNlX2FjY291bnRfbmFtZRgDIAEoCSJHChZHZXRBY2Nlc3NUb2tlblJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIXCg9leHBpcmF0aW9uX3RpbWUYAiABKAMiIAoeR2V0RGVmYXVsdEdjc0J1Y2tldE5hbWVSZXF1ZXN0IkIKH0dldERlZmF1bHRHY3NCdWNrZXROYW1lUmVzcG9uc2USHwoXZGVmYXVsdF9nY3NfYnVja2V0X25hbWUYASABKAkyoAQKDlNpZ25pbmdTZXJ2aWNlEk0KClNpZ25Gb3JBcHASHS5hcHBob3N0aW5nLlNpZ25Gb3JBcHBSZXF1ZXN0Gh4uYXBwaG9zdGluZy5TaWduRm9yQXBwUmVzcG9uc2UiABJ+ChtHZXRQdWJsaWNDZXJ0aWZpY2F0ZXNGb3JBcHASLS5hcHBob3N0aW5nLkdldFB1YmxpY0NlcnRpZmljYXRlRm9yQXBwUmVxdWVzdBouLmFwcGhvc3RpbmcuR2V0UHVibGljQ2VydGlmaWNhdGVGb3JBcHBSZXNwb25zZSIAEm4KFUdldFNlcnZpY2VBY2NvdW50TmFtZRIoLmFwcGhvc3RpbmcuR2V0U2VydmljZUFjY291bnROYW1lUmVxdWVzdBopLmFwcGhvc3RpbmcuR2V0U2VydmljZUFjY291bnROYW1lUmVzcG9uc2UiABJZCg5HZXRBY2Nlc3NUb2tlbhIhLmFwcGhvc3RpbmcuR2V0QWNjZXNzVG9rZW5SZXF1ZXN0GiIuYXBwaG9zdGluZy5HZXRBY2Nlc3NUb2tlblJlc3BvbnNlIgASdAoXR2V0RGVmYXVsdEdjc0J1Y2tldE5hbWUSKi5hcHBob3N0aW5nLkdldERlZmF1bHRHY3NCdWNrZXROYW1lUmVxdWVzdBorLmFwcGhvc3RpbmcuR2V0RGVmYXVsdEdjc0J1Y2tldE5hbWVSZXNwb25zZSIAQj4KJGNvbS5nb29nbGUuYXBwZW5naW5lLmFwaS5hcHBpZGVudGl0eSgCQhRBcHBJZGVudGl0eVNlcnZpY2VQYg==")) | |
if _net_proto___parse__python is not None: | |
_net_proto___parse__python.RegisterType( | |
_SERIALIZED_DESCRIPTOR.tostring()) | |
diff -u -r 1.9.69/google_appengine/google/appengine/api/appinfo.py 1.9.70/google_appengine/google/appengine/api/appinfo.py | |
--- 1.9.69/google_appengine/google/appengine/api/appinfo.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/api/appinfo.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -499,6 +499,8 @@ | |
'A full-featured web application framework for Python.', | |
['1.2', '1.3', '1.4', '1.5', '1.9', '1.11'], | |
latest_version='1.4', | |
+ deprecated_versions=['1.2', '1.3', '1.5', '1.9'], | |
+ | |
), | |
_VersionedLibrary( | |
'enum', | |
@@ -558,7 +560,7 @@ | |
'A Pythonic binding for the C libraries libxml2 and libxslt.', | |
['2.3', '2.3.5', '3.7.3'], | |
latest_version='3.7.3', | |
- experimental_versions=['2.3.5'], | |
+ deprecated_versions=['2.3', '2.3.5'], | |
), | |
_VersionedLibrary( | |
'markupsafe', | |
@@ -580,7 +582,7 @@ | |
'A Python DB API v2.0 compatible interface to MySQL.', | |
['1.2.4b4', '1.2.4', '1.2.5'], | |
latest_version='1.2.5', | |
- experimental_versions=['1.2.4b4', '1.2.4', '1.2.5'] | |
+ deprecated_versions=['1.2.4b4', '1.2.4'], | |
), | |
_VersionedLibrary( | |
'numpy', | |
@@ -610,9 +612,9 @@ | |
'https://pypi.python.org/pypi/pytz?', | |
'A library for cross-platform timezone calculations', | |
['2016.4', '2017.2', '2017.3'], | |
- latest_version='2017.2', | |
- default_version='2017.2', | |
- hidden_versions=['2017.3'], | |
+ latest_version='2017.3', | |
+ default_version='2017.3', | |
+ deprecated_versions=['2016.4', '2017.2'], | |
), | |
_VersionedLibrary( | |
'crcmod', | |
@@ -643,6 +645,8 @@ | |
'A library of cryptogoogle.appengine._internal.graphy functions such as random number generation.', | |
['2.3', '2.6', '2.6.1'], | |
latest_version='2.6', | |
+ deprecated_versions=['2.3'], | |
+ | |
), | |
_VersionedLibrary( | |
'setuptools', | |
@@ -650,6 +654,7 @@ | |
'A library that provides package and module discovery capabilities.', | |
['0.6c11', '36.6.0'], | |
latest_version='36.6.0', | |
+ deprecated_versions=['0.6c11'], | |
), | |
_VersionedLibrary( | |
'six', | |
@@ -679,8 +684,9 @@ | |
'A lightweight Python web framework.', | |
['2.3', '2.5.1', '2.5.2'], | |
latest_version='2.5.2', | |
+ | |
default_version='2.3', | |
- deprecated_versions=['2.3'] | |
+ deprecated_versions=['2.5.1'] | |
), | |
_VersionedLibrary( | |
'webob', | |
@@ -688,6 +694,7 @@ | |
'A library that provides wrappers around the WSGI request environment.', | |
['1.1.1', '1.2.3'], | |
latest_version='1.2.3', | |
+ | |
default_version='1.1.1', | |
), | |
_VersionedLibrary( | |
@@ -2764,3 +2771,5 @@ | |
if _file_path_negative_3_re.search(filename) is not None: | |
return 'Any spaces must be in the middle of a filename: %s' % filename | |
return '' | |
+ | |
+ | |
diff -u -r 1.9.69/google_appengine/google/appengine/api/blobstore/blobstore_service_pb.py 1.9.70/google_appengine/google/appengine/api/blobstore/blobstore_service_pb.py | |
--- 1.9.69/google_appengine/google/appengine/api/blobstore/blobstore_service_pb.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/api/blobstore/blobstore_service_pb.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -172,7 +172,7 @@ | |
_STYLE_CONTENT_TYPE = """""" | |
_PROTO_DESCRIPTOR_NAME = 'apphosting.BlobstoreServiceError' | |
_SERIALIZED_DESCRIPTOR = array.array('B') | |
- _SERIALIZED_DESCRIPTOR.fromstring(base64.decodestring("WjBhcHBob3N0aW5nL2FwaS9ibG9ic3RvcmUvYmxvYnN0b3JlX3NlcnZpY2UucHJvdG8KIGFwcGhvc3RpbmcuQmxvYnN0b3JlU2VydmljZUVycm9yc3oJRXJyb3JDb2RliwGSAQJPS5gBAIwBiwGSAQ5JTlRFUk5BTF9FUlJPUpgBAYwBiwGSAQxVUkxfVE9PX0xPTkeYAQKMAYsBkgERUEVSTUlTU0lPTl9ERU5JRUSYAQOMAYsBkgEOQkxPQl9OT1RfRk9VTkSYAQSMAYsBkgEXREFUQV9JTkRFWF9PVVRfT0ZfUkFOR0WYAQWMAYsBkgEZQkxPQl9GRVRDSF9TSVpFX1RPT19MQVJHRZgBBowBiwGSARVBUkdVTUVOVF9PVVRfT0ZfUkFOR0WYAQiMAYsBkgEQSU5WQUxJRF9CTE9CX0tFWZgBCYwBdLoBhw0KMGFwcGhvc3RpbmcvYXBpL2Jsb2JzdG9yZS9ibG9ic3RvcmVfc2VydmljZS5wcm90bxIKYXBwaG9zdGluZxodYXBwaG9zdGluZy9hcGkvYXBpX2Jhc2UucHJvdG8i6wEKFUJsb2JzdG9yZVNlcnZpY2VFcnJvciLRAQoJRXJyb3JDb2RlEgYKAk9LEAASEgoOSU5URVJOQUxfRVJST1IQARIQCgxVUkxfVE9PX0xPTkcQAhIVChFQRVJNSVNTSU9OX0RFTklFRBADEhIKDkJMT0JfTk9UX0ZPVU5EEAQSGwoXREFUQV9JTkRFWF9PVVRfT0ZfUkFOR0UQBRIdChlCTE9CX0ZFVENIX1NJWkVfVE9PX0xBUkdFEAYSGQoVQVJHVU1FTlRfT1VUX09GX1JBTkdFEAgSFAoQSU5WQUxJRF9CTE9CX0tFWRAJIq4BChZDcmVhdGVVcGxvYWRVUkxSZXF1ZXN0EhQKDHN1Y2Nlc3NfcGF0aBgBIAIoCRIdChVtYXhfdXBsb2FkX3NpemVfYnl0ZXMYAiABKAMSJgoebWF4X3VwbG9hZF9zaXplX3Blcl9ibG9iX2J5dGVzGAMgASgDEhYKDmdzX2J1Y2tldF9uYW1lGAQgASgJEh8KF3VybF9leHBpcnlfdGltZV9zZWNvbmRzGAUgASgFIiYKF0NyZWF0ZVVwbG9hZFVSTFJlc3BvbnNlEgsKA3VybBgBIAIoCSI0ChFEZWxldGVCbG9iUmVxdWVzdBIQCghibG9iX2tleRgBIAMoCRINCgV0b2tlbhgCIAEoCSJMChBGZXRjaERhdGFSZXF1ZXN0EhAKCGJsb2Jfa2V5GAEgAigJEhMKC3N0YXJ0X2luZGV4GAIgAigDEhEKCWVuZF9pbmRleBgDIAIoAyImChFGZXRjaERhdGFSZXNwb25zZRIRCgRkYXRhGOgHIAIoDEICCAEiTgoQQ2xvbmVCbG9iUmVxdWVzdBIQCghibG9iX2tleRgBIAIoDBIRCgltaW1lX3R5cGUYAiACKAwSFQoNdGFyZ2V0X2FwcF9pZBgDIAIoDCIlChFDbG9uZUJsb2JSZXNwb25zZRIQCghibG9iX2tleRgBIAIoDCIoChREZWNvZGVCbG9iS2V5UmVxdWVzdBIQCghibG9iX2tleRgBIAMoCSIoChVEZWNvZGVCbG9iS2V5UmVzcG9uc2USDwoHZGVjb2RlZBgBIAMoCSI4CiRDcmVhdGVFbmNvZGVkR29vZ2xlU3RvcmFnZUtleVJlcXVlc3QSEAoIZmlsZW5hbWUYASACKAkiOQolQ3JlYXRlRW5jb2RlZEdvb2dsZVN0b3JhZ2VLZXlSZXNwb25zZRIQCghibG9iX2tleRgBIAIoCTK0BAoQQmxvYnN0b3JlU2VydmljZRJcCg9DcmVhdGVVcGxvYWRVUkwSIi5hcHBob3N0aW5nLkNyZWF0ZVVwbG9hZFVSTFJlcXVlc3QaIy5hcHBob3N0aW5nLkNyZWF0ZVVwbG9hZFVSTFJlc3BvbnNlIgASSQoKRGVsZXRlQmxvYhIdLmFwcGhvc3RpbmcuRGVsZXRlQmxvYlJlcXVlc3QaGi5hcHBob3N0aW5nLmJhc2UuVm9pZFByb3RvIgASSgoJRmV0Y2hEYXRhEhwuYXBwaG9zdGluZy5GZXRjaERhdGFSZXF1ZXN0Gh0uYXBwaG9zdGluZy5GZXRjaERhdGFSZXNwb25zZSIAEkoKCUNsb25lQmxvYhIcLmFwcGhvc3RpbmcuQ2xvbmVCbG9iUmVxdWVzdBodLmFwcGhvc3RpbmcuQ2xvbmVCbG9iUmVzcG9uc2UiABJWCg1EZWNvZGVCbG9iS2V5EiAuYXBwaG9zdGluZy5EZWNvZGVCbG9iS2V5UmVxdWVzdBohLmFwcGhvc3RpbmcuRGVjb2RlQmxvYktleVJlc3BvbnNlIgAShgEKHUNyZWF0ZUVuY29kZWRHb29nbGVTdG9yYWdlS2V5EjAuYXBwaG9zdGluZy5DcmVhdGVFbmNvZGVkR29vZ2xlU3RvcmFnZUtleVJlcXVlc3QaMS5hcHBob3N0aW5nLkNyZWF0ZUVuY29kZWRHb29nbGVTdG9yYWdlS2V5UmVzcG9uc2UiAEI+CiJjb20uZ29vZ2xlLmFwcGVuZ2luZS5hcGkuYmxvYnN0b3JlEAIgASgBQhJCbG9ic3RvcmVTZXJ2aWNlUGI=")) | |
+ _SERIALIZED_DESCRIPTOR.fromstring(base64.decodestring("WjBhcHBob3N0aW5nL2FwaS9ibG9ic3RvcmUvYmxvYnN0b3JlX3NlcnZpY2UucHJvdG8KIGFwcGhvc3RpbmcuQmxvYnN0b3JlU2VydmljZUVycm9yc3oJRXJyb3JDb2RliwGSAQJPS5gBAIwBiwGSAQ5JTlRFUk5BTF9FUlJPUpgBAYwBiwGSAQxVUkxfVE9PX0xPTkeYAQKMAYsBkgERUEVSTUlTU0lPTl9ERU5JRUSYAQOMAYsBkgEOQkxPQl9OT1RfRk9VTkSYAQSMAYsBkgEXREFUQV9JTkRFWF9PVVRfT0ZfUkFOR0WYAQWMAYsBkgEZQkxPQl9GRVRDSF9TSVpFX1RPT19MQVJHRZgBBowBiwGSARVBUkdVTUVOVF9PVVRfT0ZfUkFOR0WYAQiMAYsBkgEQSU5WQUxJRF9CTE9CX0tFWZgBCYwBdLoBhQ0KMGFwcGhvc3RpbmcvYXBpL2Jsb2JzdG9yZS9ibG9ic3RvcmVfc2VydmljZS5wcm90bxIKYXBwaG9zdGluZxodYXBwaG9zdGluZy9hcGkvYXBpX2Jhc2UucHJvdG8i6wEKFUJsb2JzdG9yZVNlcnZpY2VFcnJvciLRAQoJRXJyb3JDb2RlEgYKAk9LEAASEgoOSU5URVJOQUxfRVJST1IQARIQCgxVUkxfVE9PX0xPTkcQAhIVChFQRVJNSVNTSU9OX0RFTklFRBADEhIKDkJMT0JfTk9UX0ZPVU5EEAQSGwoXREFUQV9JTkRFWF9PVVRfT0ZfUkFOR0UQBRIdChlCTE9CX0ZFVENIX1NJWkVfVE9PX0xBUkdFEAYSGQoVQVJHVU1FTlRfT1VUX09GX1JBTkdFEAgSFAoQSU5WQUxJRF9CTE9CX0tFWRAJIq4BChZDcmVhdGVVcGxvYWRVUkxSZXF1ZXN0EhQKDHN1Y2Nlc3NfcGF0aBgBIAIoCRIdChVtYXhfdXBsb2FkX3NpemVfYnl0ZXMYAiABKAMSJgoebWF4X3VwbG9hZF9zaXplX3Blcl9ibG9iX2J5dGVzGAMgASgDEhYKDmdzX2J1Y2tldF9uYW1lGAQgASgJEh8KF3VybF9leHBpcnlfdGltZV9zZWNvbmRzGAUgASgFIiYKF0NyZWF0ZVVwbG9hZFVSTFJlc3BvbnNlEgsKA3VybBgBIAIoCSI0ChFEZWxldGVCbG9iUmVxdWVzdBIQCghibG9iX2tleRgBIAMoCRINCgV0b2tlbhgCIAEoCSJMChBGZXRjaERhdGFSZXF1ZXN0EhAKCGJsb2Jfa2V5GAEgAigJEhMKC3N0YXJ0X2luZGV4GAIgAigDEhEKCWVuZF9pbmRleBgDIAIoAyImChFGZXRjaERhdGFSZXNwb25zZRIRCgRkYXRhGOgHIAIoDEICCAEiTgoQQ2xvbmVCbG9iUmVxdWVzdBIQCghibG9iX2tleRgBIAIoDBIRCgltaW1lX3R5cGUYAiACKAwSFQoNdGFyZ2V0X2FwcF9pZBgDIAIoDCIlChFDbG9uZUJsb2JSZXNwb25zZRIQCghibG9iX2tleRgBIAIoDCIoChREZWNvZGVCbG9iS2V5UmVxdWVzdBIQCghibG9iX2tleRgBIAMoCSIoChVEZWNvZGVCbG9iS2V5UmVzcG9uc2USDwoHZGVjb2RlZBgBIAMoCSI4CiRDcmVhdGVFbmNvZGVkR29vZ2xlU3RvcmFnZUtleVJlcXVlc3QSEAoIZmlsZW5hbWUYASACKAkiOQolQ3JlYXRlRW5jb2RlZEdvb2dsZVN0b3JhZ2VLZXlSZXNwb25zZRIQCghibG9iX2tleRgBIAIoCTK0BAoQQmxvYnN0b3JlU2VydmljZRJcCg9DcmVhdGVVcGxvYWRVUkwSIi5hcHBob3N0aW5nLkNyZWF0ZVVwbG9hZFVSTFJlcXVlc3QaIy5hcHBob3N0aW5nLkNyZWF0ZVVwbG9hZFVSTFJlc3BvbnNlIgASSQoKRGVsZXRlQmxvYhIdLmFwcGhvc3RpbmcuRGVsZXRlQmxvYlJlcXVlc3QaGi5hcHBob3N0aW5nLmJhc2UuVm9pZFByb3RvIgASSgoJRmV0Y2hEYXRhEhwuYXBwaG9zdGluZy5GZXRjaERhdGFSZXF1ZXN0Gh0uYXBwaG9zdGluZy5GZXRjaERhdGFSZXNwb25zZSIAEkoKCUNsb25lQmxvYhIcLmFwcGhvc3RpbmcuQ2xvbmVCbG9iUmVxdWVzdBodLmFwcGhvc3RpbmcuQ2xvbmVCbG9iUmVzcG9uc2UiABJWCg1EZWNvZGVCbG9iS2V5EiAuYXBwaG9zdGluZy5EZWNvZGVCbG9iS2V5UmVxdWVzdBohLmFwcGhvc3RpbmcuRGVjb2RlQmxvYktleVJlc3BvbnNlIgAShgEKHUNyZWF0ZUVuY29kZWRHb29nbGVTdG9yYWdlS2V5EjAuYXBwaG9zdGluZy5DcmVhdGVFbmNvZGVkR29vZ2xlU3RvcmFnZUtleVJlcXVlc3QaMS5hcHBob3N0aW5nLkNyZWF0ZUVuY29kZWRHb29nbGVTdG9yYWdlS2V5UmVzcG9uc2UiAEI8CiJjb20uZ29vZ2xlLmFwcGVuZ2luZS5hcGkuYmxvYnN0b3JlEAIoAUISQmxvYnN0b3JlU2VydmljZVBi")) | |
if _net_proto___parse__python is not None: | |
_net_proto___parse__python.RegisterType( | |
_SERIALIZED_DESCRIPTOR.tostring()) | |
diff -u -r 1.9.69/google_appengine/google/appengine/api/files/file_service_pb.py 1.9.70/google_appengine/google/appengine/api/files/file_service_pb.py | |
--- 1.9.69/google_appengine/google/appengine/api/files/file_service_pb.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/api/files/file_service_pb.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -227,7 +227,7 @@ | |
_STYLE_CONTENT_TYPE = """""" | |
_PROTO_DESCRIPTOR_NAME = 'apphosting.files.FileServiceErrors' | |
_SERIALIZED_DESCRIPTOR = array.array('B') | |
- _SERIALIZED_DESCRIPTOR.fromstring(base64.decodestring("WidhcHBob3N0aW5nL2FwaS9maWxlcy9maWxlX3NlcnZpY2UucHJvdG8KImFwcGhvc3RpbmcuZmlsZXMuRmlsZVNlcnZpY2VFcnJvcnNzeglFcnJvckNvZGWLAZIBAk9LmAEAjAGLAZIBG0FQSV9URU1QT1JBUklMWV9VTkFWQUlMQUJMRZgBAYwBiwGSARFSRVFVRVNUX1RPT19MQVJHRZgBA4wBiwGSARJSRVNQT05TRV9UT09fTEFSR0WYAQSMAYsBkgERSU5WQUxJRF9GSUxFX05BTUWYAQWMAYsBkgEXT1BFUkFUSU9OX05PVF9TVVBQT1JURUSYAQaMAYsBkgEISU9fRVJST1KYAQeMAYsBkgERUEVSTUlTU0lPTl9ERU5JRUSYAQiMAYsBkgESV1JPTkdfQ09OVEVOVF9UWVBFmAEJjAGLAZIBD0ZJTEVfTk9UX09QRU5FRJgBCowBiwGSAQ9XUk9OR19PUEVOX01PREWYAQuMAYsBkgEXRVhDTFVTSVZFX0xPQ0tfUkVRVUlSRUSYAQyMAYsBkgEcRklMRV9URU1QT1JBUklMWV9VTkFWQUlMQUJMRZgBDYwBiwGSAQ9FWElTVEVOQ0VfRVJST1KYAWSMAYsBkgESRklOQUxJWkFUSU9OX0VSUk9SmAFljAGLAZIBGFVOU1VQUE9SVEVEX0NPTlRFTlRfVFlQRZgBZowBiwGSAQlSRUFEX09OTFmYAWeMAYsBkgEVRVhDTFVTSVZFX0xPQ0tfRkFJTEVEmAFojAGLAZIBIkVYSVNURU5DRV9FUlJPUl9NRVRBREFUQV9OT1RfRk9VTkSYAWmMAYsBkgEeRVhJU1RFTkNFX0VSUk9SX01FVEFEQVRBX0ZPVU5EmAFqjAGLAZIBIUVYSVNURU5DRV9FUlJPUl9TSEFSRElOR19NSVNNQVRDSJgBa4wBiwGSARhGSU5BTElaQVRJT05fSU5fUFJPR1JFU1OYAWyMAYsBkgEgRVhJU1RFTkNFX0VSUk9SX09CSkVDVF9OT1RfRk9VTkSYAW2MAYsBkgEgRVhJU1RFTkNFX0VSUk9SX0JVQ0tFVF9OT1RfRk9VTkSYAW6MAYsBkgEZU0VRVUVOQ0VfS0VZX09VVF9PRl9PUkRFUpgBrAKMAYsBkgENT1VUX09GX0JPVU5EU5gB9AOMAYsBkgETR0xPQlNfTk9UX1NVUFBPUlRFRJgB2ASMAYsBkgEXRklMRV9OQU1FX05PVF9TUEVDSUZJRUSYAb0FjAGLAZIBE0ZJTEVfTkFNRV9TUEVDSUZJRUSYAb4FjAGLAZIBE0ZJTEVfQUxSRUFEWV9FWElTVFOYAb8FjAGLAZIBF1VOU1VQUE9SVEVEX0ZJTEVfU1lTVEVNmAHABYwBiwGSARFJTlZBTElEX1BBUkFNRVRFUpgBwQWMAYsBkgEXU0hVRkZMRVJfSU5URVJOQUxfRVJST1KYAaAGjAGLAZIBGVNIVUZGTEVfUkVRVUVTVF9UT09fTEFSR0WYAaEGjAGLAZIBFkRVUExJQ0FURV9TSFVGRkxFX05BTUWYAaIGjAGLAZIBFVNIVUZGTEVfTk9UX0FWQUlMQUJMRZgBowaMAYsBkgEgU0hVRkZMRVJfVEVNUE9SQVJJTFlfVU5BVkFJTEFCTEWYAYQHjAGLAZIBDk1BWF9FUlJPUl9DT0RFmAGPTowBdLoB2CsKJ2FwcGhvc3RpbmcvYXBpL2ZpbGVzL2ZpbGVfc2VydmljZS5wcm90bxIQYXBwaG9zdGluZy5maWxlcyKuCAoRRmlsZVNlcnZpY2VFcnJvcnMimAgKCUVycm9yQ29kZRIGCgJPSxAAEh8KG0FQSV9URU1QT1JBUklMWV9VTkFWQUlMQUJMRRABEhUKEVJFUVVFU1RfVE9PX0xBUkdFEAMSFgoSUkVTUE9OU0VfVE9PX0xBUkdFEAQSFQoRSU5WQUxJRF9GSUxFX05BTUUQBRIbChdPUEVSQVRJT05fTk9UX1NVUFBPUlRFRBAGEgwKCElPX0VSUk9SEAcSFQoRUEVSTUlTU0lPTl9ERU5JRUQQCBIWChJXUk9OR19DT05URU5UX1RZUEUQCRITCg9GSUxFX05PVF9PUEVORUQQChITCg9XUk9OR19PUEVOX01PREUQCxIbChdFWENMVVNJVkVfTE9DS19SRVFVSVJFRBAMEiAKHEZJTEVfVEVNUE9SQVJJTFlfVU5BVkFJTEFCTEUQDRITCg9FWElTVEVOQ0VfRVJST1IQZBIWChJGSU5BTElaQVRJT05fRVJST1IQZRIcChhVTlNVUFBPUlRFRF9DT05URU5UX1RZUEUQZhINCglSRUFEX09OTFkQZxIZChVFWENMVVNJVkVfTE9DS19GQUlMRUQQaBImCiJFWElTVEVOQ0VfRVJST1JfTUVUQURBVEFfTk9UX0ZPVU5EEGkSIgoeRVhJU1RFTkNFX0VSUk9SX01FVEFEQVRBX0ZPVU5EEGoSJQohRVhJU1RFTkNFX0VSUk9SX1NIQVJESU5HX01JU01BVENIEGsSHAoYRklOQUxJWkFUSU9OX0lOX1BST0dSRVNTEGwSJAogRVhJU1RFTkNFX0VSUk9SX09CSkVDVF9OT1RfRk9VTkQQbRIkCiBFWElTVEVOQ0VfRVJST1JfQlVDS0VUX05PVF9GT1VORBBuEh4KGVNFUVVFTkNFX0tFWV9PVVRfT0ZfT1JERVIQrAISEgoNT1VUX09GX0JPVU5EUxD0AxIYChNHTE9CU19OT1RfU1VQUE9SVEVEENgEEhwKF0ZJTEVfTkFNRV9OT1RfU1BFQ0lGSUVEEL0FEhgKE0ZJTEVfTkFNRV9TUEVDSUZJRUQQvgUSGAoTRklMRV9BTFJFQURZX0VYSVNUUxC/BRIcChdVTlNVUFBPUlRFRF9GSUxFX1NZU1RFTRDABRIWChFJTlZBTElEX1BBUkFNRVRFUhDBBRIcChdTSFVGRkxFUl9JTlRFUk5BTF9FUlJPUhCgBhIeChlTSFVGRkxFX1JFUVVFU1RfVE9PX0xBUkdFEKEGEhsKFkRVUExJQ0FURV9TSFVGRkxFX05BTUUQogYSGgoVU0hVRkZMRV9OT1RfQVZBSUxBQkxFEKMGEiUKIFNIVUZGTEVSX1RFTVBPUkFSSUxZX1VOQVZBSUxBQkxFEIQHEhMKDk1BWF9FUlJPUl9DT0RFEI9OIi4KCEtleVZhbHVlEg8KA2tleRgBIAIoDEICCAESEQoFdmFsdWUYAiACKAxCAggBIkcKCUtleVZhbHVlcxIPCgNrZXkYASACKAxCAggBEhEKBXZhbHVlGAIgAygMQgIIARIWCgdwYXJ0aWFsGAMgASgIOgVmYWxzZSJNCg9GaWxlQ29udGVudFR5cGUiOgoLQ29udGVudFR5cGUSBwoDUkFXEAASEAoMREVQUkVDQVRFRF8xEAISEAoMSU5WQUxJRF9UWVBFEH8ihgIKDUNyZWF0ZVJlcXVlc3QSEgoKZmlsZXN5c3RlbRgBIAIoCRJDCgxjb250ZW50X3R5cGUYAiACKA4yLS5hcHBob3N0aW5nLmZpbGVzLkZpbGVDb250ZW50VHlwZS5Db250ZW50VHlwZRISCghmaWxlbmFtZRgDIAEoCToAEj0KCnBhcmFtZXRlcnMYBCADKAsyKS5hcHBob3N0aW5nLmZpbGVzLkNyZWF0ZVJlcXVlc3QuUGFyYW1ldGVyEh8KF2V4cGlyYXRpb25fdGltZV9zZWNvbmRzGAUgASgDGigKCVBhcmFtZXRlchIMCgRuYW1lGAEgAigJEg0KBXZhbHVlGAIgAigJIiIKDkNyZWF0ZVJlc3BvbnNlEhAKCGZpbGVuYW1lGAEgAigJIqUCCgtPcGVuUmVxdWVzdBIQCghmaWxlbmFtZRgBIAIoCRJDCgxjb250ZW50X3R5cGUYAiACKA4yLS5hcHBob3N0aW5nLmZpbGVzLkZpbGVDb250ZW50VHlwZS5Db250ZW50VHlwZRI5CglvcGVuX21vZGUYAyACKA4yJi5hcHBob3N0aW5nLmZpbGVzLk9wZW5SZXF1ZXN0Lk9wZW5Nb2RlEh0KDmV4Y2x1c2l2ZV9sb2NrGAQgASgIOgVmYWxzZRIeCg9idWZmZXJlZF9vdXRwdXQYBSABKAg6BWZhbHNlEiMKF29wZW5fbGVhc2VfdGltZV9zZWNvbmRzGAYgASgFOgIzMCIgCghPcGVuTW9kZRIKCgZBUFBFTkQQARIICgRSRUFEEAIiDgoMT3BlblJlc3BvbnNlIjkKDENsb3NlUmVxdWVzdBIQCghmaWxlbmFtZRgBIAIoCRIXCghmaW5hbGl6ZRgCIAEoCDoFZmFsc2UiDwoNQ2xvc2VSZXNwb25zZSKiAQoIRmlsZVN0YXQSEAoIZmlsZW5hbWUYASACKAkSQwoMY29udGVudF90eXBlGAIgAigOMi0uYXBwaG9zdGluZy5maWxlcy5GaWxlQ29udGVudFR5cGUuQ29udGVudFR5cGUSEQoJZmluYWxpemVkGAMgAigIEg4KBmxlbmd0aBgEIAEoAxINCgVjdGltZRgFIAEoAxINCgVtdGltZRgGIAEoAyIyCgtTdGF0UmVxdWVzdBIQCghmaWxlbmFtZRgBIAEoCRIRCglmaWxlX2dsb2IYAiABKAkiWQoMU3RhdFJlc3BvbnNlEigKBHN0YXQYASADKAsyGi5hcHBob3N0aW5nLmZpbGVzLkZpbGVTdGF0Eh8KEG1vcmVfZmlsZXNfZm91bmQYAiACKAg6BWZhbHNlIk0KDUFwcGVuZFJlcXVlc3QSEAoIZmlsZW5hbWUYASACKAkSEAoEZGF0YRgCIAIoDEICCAESGAoMc2VxdWVuY2Vfa2V5GAMgASgJQgIIASIQCg5BcHBlbmRSZXNwb25zZSIhCg1EZWxldGVSZXF1ZXN0EhAKCGZpbGVuYW1lGAEgAigJIhAKDkRlbGV0ZVJlc3BvbnNlIj8KC1JlYWRSZXF1ZXN0EhAKCGZpbGVuYW1lGAEgAigJEgsKA3BvcxgCIAIoAxIRCgltYXhfYnl0ZXMYAyACKAMiIAoMUmVhZFJlc3BvbnNlEhAKBGRhdGEYASACKAxCAggBImQKE1JlYWRLZXlWYWx1ZVJlcXVlc3QSEAoIZmlsZW5hbWUYASACKAkSFQoJc3RhcnRfa2V5GAIgAigMQgIIARIRCgltYXhfYnl0ZXMYAyACKAMSEQoJdmFsdWVfcG9zGAQgASgDIrABChRSZWFkS2V5VmFsdWVSZXNwb25zZRI9CgRkYXRhGAEgAygLMi8uYXBwaG9zdGluZy5maWxlcy5SZWFkS2V5VmFsdWVSZXNwb25zZS5LZXlWYWx1ZRIQCghuZXh0X2tleRgCIAEoDBIXCg90cnVuY2F0ZWRfdmFsdWUYAyABKAgaLgoIS2V5VmFsdWUSDwoDa2V5GAEgAigMQgIIARIRCgV2YWx1ZRgCIAIoDEICCAEiiQIKDFNodWZmbGVFbnVtcyIwCgtJbnB1dEZvcm1hdBIhCh1SRUNPUkRTX0tFWV9WQUxVRV9QUk9UT19JTlBVVBABIjgKDE91dHB1dEZvcm1hdBIoCiRSRUNPUkRTX0tFWV9NVUxUSV9WQUxVRV9QUk9UT19PVVRQVVQQASKMAQoGU3RhdHVzEgsKB1VOS05PV04QARILCgdSVU5OSU5HEAISCwoHU1VDQ0VTUxADEgsKB0ZBSUxVUkUQBBIRCg1JTlZBTElEX0lOUFVUEAUSGQoVT1VUUFVUX0FMUkVBRFlfRVhJU1RTEAYSIAocSU5DT1JSRUNUX1NIVUZGTEVfU0laRV9CWVRFUxAHIoQBChlTaHVmZmxlSW5wdXRTcGVjaWZpY2F0aW9uElkKBmZvcm1hdBgBIAEoDjIqLmFwcGhvc3RpbmcuZmlsZXMuU2h1ZmZsZUVudW1zLklucHV0Rm9ybWF0Oh1SRUNPUkRTX0tFWV9WQUxVRV9QUk9UT19JTlBVVBIMCgRwYXRoGAIgAigJIo0BChpTaHVmZmxlT3V0cHV0U3BlY2lmaWNhdGlvbhJhCgZmb3JtYXQYASABKA4yKy5hcHBob3N0aW5nLmZpbGVzLlNodWZmbGVFbnVtcy5PdXRwdXRGb3JtYXQ6JFJFQ09SRFNfS0VZX01VTFRJX1ZBTFVFX1BST1RPX09VVFBVVBIMCgRwYXRoGAIgAygJItgCCg5TaHVmZmxlUmVxdWVzdBIUCgxzaHVmZmxlX25hbWUYASACKAkSOgoFaW5wdXQYAiADKAsyKy5hcHBob3N0aW5nLmZpbGVzLlNodWZmbGVJbnB1dFNwZWNpZmljYXRpb24SPAoGb3V0cHV0GAMgAigLMiwuYXBwaG9zdGluZy5maWxlcy5TaHVmZmxlT3V0cHV0U3BlY2lmaWNhdGlvbhIaChJzaHVmZmxlX3NpemVfYnl0ZXMYBCACKAMSOwoIY2FsbGJhY2sYBSACKAsyKS5hcHBob3N0aW5nLmZpbGVzLlNodWZmbGVSZXF1ZXN0LkNhbGxiYWNrGl0KCENhbGxiYWNrEgsKA3VybBgBIAIoCRIWCg5hcHBfdmVyc2lvbl9pZBgCIAEoCRIUCgZtZXRob2QYAyABKAk6BFBPU1QSFgoFcXVldWUYBCABKAk6B2RlZmF1bHQiEQoPU2h1ZmZsZVJlc3BvbnNlIi8KF0dldFNodWZmbGVTdGF0dXNSZXF1ZXN0EhQKDHNodWZmbGVfbmFtZRgBIAIoCSJmChhHZXRTaHVmZmxlU3RhdHVzUmVzcG9uc2USNQoGc3RhdHVzGAEgAigOMiUuYXBwaG9zdGluZy5maWxlcy5TaHVmZmxlRW51bXMuU3RhdHVzEhMKC2Rlc2NyaXB0aW9uGAIgASgJIhgKFkdldENhcGFiaWxpdGllc1JlcXVlc3QiSAoXR2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2USEgoKZmlsZXN5c3RlbRgBIAMoCRIZChFzaHVmZmxlX2F2YWlsYWJsZRgCIAIoCCIjCg9GaW5hbGl6ZVJlcXVlc3QSEAoIZmlsZW5hbWUYASACKAkiEgoQRmluYWxpemVSZXNwb25zZSIfCh1HZXREZWZhdWx0R3NCdWNrZXROYW1lUmVxdWVzdCJACh5HZXREZWZhdWx0R3NCdWNrZXROYW1lUmVzcG9uc2USHgoWZGVmYXVsdF9nc19idWNrZXRfbmFtZRgBIAEoCSJQCg5MaXN0RGlyUmVxdWVzdBIMCgRwYXRoGAEgAigJEg4KBm1hcmtlchgCIAEoCRIQCghtYXhfa2V5cxgDIAEoAxIOCgZwcmVmaXgYBCABKAkiJAoPTGlzdERpclJlc3BvbnNlEhEKCWZpbGVuYW1lcxgBIAMoCTLRCQoLRmlsZVNlcnZpY2USTQoGQ3JlYXRlEh8uYXBwaG9zdGluZy5maWxlcy5DcmVhdGVSZXF1ZXN0GiAuYXBwaG9zdGluZy5maWxlcy5DcmVhdGVSZXNwb25zZSIAEkcKBE9wZW4SHS5hcHBob3N0aW5nLmZpbGVzLk9wZW5SZXF1ZXN0Gh4uYXBwaG9zdGluZy5maWxlcy5PcGVuUmVzcG9uc2UiABJKCgVDbG9zZRIeLmFwcGhvc3RpbmcuZmlsZXMuQ2xvc2VSZXF1ZXN0Gh8uYXBwaG9zdGluZy5maWxlcy5DbG9zZVJlc3BvbnNlIgASTQoGQXBwZW5kEh8uYXBwaG9zdGluZy5maWxlcy5BcHBlbmRSZXF1ZXN0GiAuYXBwaG9zdGluZy5maWxlcy5BcHBlbmRSZXNwb25zZSIAEkcKBFN0YXQSHS5hcHBob3N0aW5nLmZpbGVzLlN0YXRSZXF1ZXN0Gh4uYXBwaG9zdGluZy5maWxlcy5TdGF0UmVzcG9uc2UiABJNCgZEZWxldGUSHy5hcHBob3N0aW5nLmZpbGVzLkRlbGV0ZVJlcXVlc3QaIC5hcHBob3N0aW5nLmZpbGVzLkRlbGV0ZVJlc3BvbnNlIgASRwoEUmVhZBIdLmFwcGhvc3RpbmcuZmlsZXMuUmVhZFJlcXVlc3QaHi5hcHBob3N0aW5nLmZpbGVzLlJlYWRSZXNwb25zZSIAEl8KDFJlYWRLZXlWYWx1ZRIlLmFwcGhvc3RpbmcuZmlsZXMuUmVhZEtleVZhbHVlUmVxdWVzdBomLmFwcGhvc3RpbmcuZmlsZXMuUmVhZEtleVZhbHVlUmVzcG9uc2UiABJQCgdTaHVmZmxlEiAuYXBwaG9zdGluZy5maWxlcy5TaHVmZmxlUmVxdWVzdBohLmFwcGhvc3RpbmcuZmlsZXMuU2h1ZmZsZVJlc3BvbnNlIgASawoQR2V0U2h1ZmZsZVN0YXR1cxIpLmFwcGhvc3RpbmcuZmlsZXMuR2V0U2h1ZmZsZVN0YXR1c1JlcXVlc3QaKi5hcHBob3N0aW5nLmZpbGVzLkdldFNodWZmbGVTdGF0dXNSZXNwb25zZSIAEmgKD0dldENhcGFiaWxpdGllcxIoLmFwcGhvc3RpbmcuZmlsZXMuR2V0Q2FwYWJpbGl0aWVzUmVxdWVzdBopLmFwcGhvc3RpbmcuZmlsZXMuR2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2UiABJTCghGaW5hbGl6ZRIhLmFwcGhvc3RpbmcuZmlsZXMuRmluYWxpemVSZXF1ZXN0GiIuYXBwaG9zdGluZy5maWxlcy5GaW5hbGl6ZVJlc3BvbnNlIgASUAoHTGlzdERpchIgLmFwcGhvc3RpbmcuZmlsZXMuTGlzdERpclJlcXVlc3QaIS5hcHBob3N0aW5nLmZpbGVzLkxpc3REaXJSZXNwb25zZSIAEn0KFkdldERlZmF1bHRHc0J1Y2tldE5hbWUSLy5hcHBob3N0aW5nLmZpbGVzLkdldERlZmF1bHRHc0J1Y2tldE5hbWVSZXF1ZXN0GjAuYXBwaG9zdGluZy5maWxlcy5HZXREZWZhdWx0R3NCdWNrZXROYW1lUmVzcG9uc2UiAEI1Ch5jb20uZ29vZ2xlLmFwcGVuZ2luZS5hcGkuZmlsZXMQAiABKAJCDUZpbGVTZXJ2aWNlUGI=")) | |
+ _SERIALIZED_DESCRIPTOR.fromstring(base64.decodestring("WidhcHBob3N0aW5nL2FwaS9maWxlcy9maWxlX3NlcnZpY2UucHJvdG8KImFwcGhvc3RpbmcuZmlsZXMuRmlsZVNlcnZpY2VFcnJvcnNzeglFcnJvckNvZGWLAZIBAk9LmAEAjAGLAZIBG0FQSV9URU1QT1JBUklMWV9VTkFWQUlMQUJMRZgBAYwBiwGSARFSRVFVRVNUX1RPT19MQVJHRZgBA4wBiwGSARJSRVNQT05TRV9UT09fTEFSR0WYAQSMAYsBkgERSU5WQUxJRF9GSUxFX05BTUWYAQWMAYsBkgEXT1BFUkFUSU9OX05PVF9TVVBQT1JURUSYAQaMAYsBkgEISU9fRVJST1KYAQeMAYsBkgERUEVSTUlTU0lPTl9ERU5JRUSYAQiMAYsBkgESV1JPTkdfQ09OVEVOVF9UWVBFmAEJjAGLAZIBD0ZJTEVfTk9UX09QRU5FRJgBCowBiwGSAQ9XUk9OR19PUEVOX01PREWYAQuMAYsBkgEXRVhDTFVTSVZFX0xPQ0tfUkVRVUlSRUSYAQyMAYsBkgEcRklMRV9URU1QT1JBUklMWV9VTkFWQUlMQUJMRZgBDYwBiwGSAQ9FWElTVEVOQ0VfRVJST1KYAWSMAYsBkgESRklOQUxJWkFUSU9OX0VSUk9SmAFljAGLAZIBGFVOU1VQUE9SVEVEX0NPTlRFTlRfVFlQRZgBZowBiwGSAQlSRUFEX09OTFmYAWeMAYsBkgEVRVhDTFVTSVZFX0xPQ0tfRkFJTEVEmAFojAGLAZIBIkVYSVNURU5DRV9FUlJPUl9NRVRBREFUQV9OT1RfRk9VTkSYAWmMAYsBkgEeRVhJU1RFTkNFX0VSUk9SX01FVEFEQVRBX0ZPVU5EmAFqjAGLAZIBIUVYSVNURU5DRV9FUlJPUl9TSEFSRElOR19NSVNNQVRDSJgBa4wBiwGSARhGSU5BTElaQVRJT05fSU5fUFJPR1JFU1OYAWyMAYsBkgEgRVhJU1RFTkNFX0VSUk9SX09CSkVDVF9OT1RfRk9VTkSYAW2MAYsBkgEgRVhJU1RFTkNFX0VSUk9SX0JVQ0tFVF9OT1RfRk9VTkSYAW6MAYsBkgEZU0VRVUVOQ0VfS0VZX09VVF9PRl9PUkRFUpgBrAKMAYsBkgENT1VUX09GX0JPVU5EU5gB9AOMAYsBkgETR0xPQlNfTk9UX1NVUFBPUlRFRJgB2ASMAYsBkgEXRklMRV9OQU1FX05PVF9TUEVDSUZJRUSYAb0FjAGLAZIBE0ZJTEVfTkFNRV9TUEVDSUZJRUSYAb4FjAGLAZIBE0ZJTEVfQUxSRUFEWV9FWElTVFOYAb8FjAGLAZIBF1VOU1VQUE9SVEVEX0ZJTEVfU1lTVEVNmAHABYwBiwGSARFJTlZBTElEX1BBUkFNRVRFUpgBwQWMAYsBkgEXU0hVRkZMRVJfSU5URVJOQUxfRVJST1KYAaAGjAGLAZIBGVNIVUZGTEVfUkVRVUVTVF9UT09fTEFSR0WYAaEGjAGLAZIBFkRVUExJQ0FURV9TSFVGRkxFX05BTUWYAaIGjAGLAZIBFVNIVUZGTEVfTk9UX0FWQUlMQUJMRZgBowaMAYsBkgEgU0hVRkZMRVJfVEVNUE9SQVJJTFlfVU5BVkFJTEFCTEWYAYQHjAGLAZIBDk1BWF9FUlJPUl9DT0RFmAGPTowBdLoB1isKJ2FwcGhvc3RpbmcvYXBpL2ZpbGVzL2ZpbGVfc2VydmljZS5wcm90bxIQYXBwaG9zdGluZy5maWxlcyKuCAoRRmlsZVNlcnZpY2VFcnJvcnMimAgKCUVycm9yQ29kZRIGCgJPSxAAEh8KG0FQSV9URU1QT1JBUklMWV9VTkFWQUlMQUJMRRABEhUKEVJFUVVFU1RfVE9PX0xBUkdFEAMSFgoSUkVTUE9OU0VfVE9PX0xBUkdFEAQSFQoRSU5WQUxJRF9GSUxFX05BTUUQBRIbChdPUEVSQVRJT05fTk9UX1NVUFBPUlRFRBAGEgwKCElPX0VSUk9SEAcSFQoRUEVSTUlTU0lPTl9ERU5JRUQQCBIWChJXUk9OR19DT05URU5UX1RZUEUQCRITCg9GSUxFX05PVF9PUEVORUQQChITCg9XUk9OR19PUEVOX01PREUQCxIbChdFWENMVVNJVkVfTE9DS19SRVFVSVJFRBAMEiAKHEZJTEVfVEVNUE9SQVJJTFlfVU5BVkFJTEFCTEUQDRITCg9FWElTVEVOQ0VfRVJST1IQZBIWChJGSU5BTElaQVRJT05fRVJST1IQZRIcChhVTlNVUFBPUlRFRF9DT05URU5UX1RZUEUQZhINCglSRUFEX09OTFkQZxIZChVFWENMVVNJVkVfTE9DS19GQUlMRUQQaBImCiJFWElTVEVOQ0VfRVJST1JfTUVUQURBVEFfTk9UX0ZPVU5EEGkSIgoeRVhJU1RFTkNFX0VSUk9SX01FVEFEQVRBX0ZPVU5EEGoSJQohRVhJU1RFTkNFX0VSUk9SX1NIQVJESU5HX01JU01BVENIEGsSHAoYRklOQUxJWkFUSU9OX0lOX1BST0dSRVNTEGwSJAogRVhJU1RFTkNFX0VSUk9SX09CSkVDVF9OT1RfRk9VTkQQbRIkCiBFWElTVEVOQ0VfRVJST1JfQlVDS0VUX05PVF9GT1VORBBuEh4KGVNFUVVFTkNFX0tFWV9PVVRfT0ZfT1JERVIQrAISEgoNT1VUX09GX0JPVU5EUxD0AxIYChNHTE9CU19OT1RfU1VQUE9SVEVEENgEEhwKF0ZJTEVfTkFNRV9OT1RfU1BFQ0lGSUVEEL0FEhgKE0ZJTEVfTkFNRV9TUEVDSUZJRUQQvgUSGAoTRklMRV9BTFJFQURZX0VYSVNUUxC/BRIcChdVTlNVUFBPUlRFRF9GSUxFX1NZU1RFTRDABRIWChFJTlZBTElEX1BBUkFNRVRFUhDBBRIcChdTSFVGRkxFUl9JTlRFUk5BTF9FUlJPUhCgBhIeChlTSFVGRkxFX1JFUVVFU1RfVE9PX0xBUkdFEKEGEhsKFkRVUExJQ0FURV9TSFVGRkxFX05BTUUQogYSGgoVU0hVRkZMRV9OT1RfQVZBSUxBQkxFEKMGEiUKIFNIVUZGTEVSX1RFTVBPUkFSSUxZX1VOQVZBSUxBQkxFEIQHEhMKDk1BWF9FUlJPUl9DT0RFEI9OIi4KCEtleVZhbHVlEg8KA2tleRgBIAIoDEICCAESEQoFdmFsdWUYAiACKAxCAggBIkcKCUtleVZhbHVlcxIPCgNrZXkYASACKAxCAggBEhEKBXZhbHVlGAIgAygMQgIIARIWCgdwYXJ0aWFsGAMgASgIOgVmYWxzZSJNCg9GaWxlQ29udGVudFR5cGUiOgoLQ29udGVudFR5cGUSBwoDUkFXEAASEAoMREVQUkVDQVRFRF8xEAISEAoMSU5WQUxJRF9UWVBFEH8ihgIKDUNyZWF0ZVJlcXVlc3QSEgoKZmlsZXN5c3RlbRgBIAIoCRJDCgxjb250ZW50X3R5cGUYAiACKA4yLS5hcHBob3N0aW5nLmZpbGVzLkZpbGVDb250ZW50VHlwZS5Db250ZW50VHlwZRISCghmaWxlbmFtZRgDIAEoCToAEj0KCnBhcmFtZXRlcnMYBCADKAsyKS5hcHBob3N0aW5nLmZpbGVzLkNyZWF0ZVJlcXVlc3QuUGFyYW1ldGVyEh8KF2V4cGlyYXRpb25fdGltZV9zZWNvbmRzGAUgASgDGigKCVBhcmFtZXRlchIMCgRuYW1lGAEgAigJEg0KBXZhbHVlGAIgAigJIiIKDkNyZWF0ZVJlc3BvbnNlEhAKCGZpbGVuYW1lGAEgAigJIqUCCgtPcGVuUmVxdWVzdBIQCghmaWxlbmFtZRgBIAIoCRJDCgxjb250ZW50X3R5cGUYAiACKA4yLS5hcHBob3N0aW5nLmZpbGVzLkZpbGVDb250ZW50VHlwZS5Db250ZW50VHlwZRI5CglvcGVuX21vZGUYAyACKA4yJi5hcHBob3N0aW5nLmZpbGVzLk9wZW5SZXF1ZXN0Lk9wZW5Nb2RlEh0KDmV4Y2x1c2l2ZV9sb2NrGAQgASgIOgVmYWxzZRIeCg9idWZmZXJlZF9vdXRwdXQYBSABKAg6BWZhbHNlEiMKF29wZW5fbGVhc2VfdGltZV9zZWNvbmRzGAYgASgFOgIzMCIgCghPcGVuTW9kZRIKCgZBUFBFTkQQARIICgRSRUFEEAIiDgoMT3BlblJlc3BvbnNlIjkKDENsb3NlUmVxdWVzdBIQCghmaWxlbmFtZRgBIAIoCRIXCghmaW5hbGl6ZRgCIAEoCDoFZmFsc2UiDwoNQ2xvc2VSZXNwb25zZSKiAQoIRmlsZVN0YXQSEAoIZmlsZW5hbWUYASACKAkSQwoMY29udGVudF90eXBlGAIgAigOMi0uYXBwaG9zdGluZy5maWxlcy5GaWxlQ29udGVudFR5cGUuQ29udGVudFR5cGUSEQoJZmluYWxpemVkGAMgAigIEg4KBmxlbmd0aBgEIAEoAxINCgVjdGltZRgFIAEoAxINCgVtdGltZRgGIAEoAyIyCgtTdGF0UmVxdWVzdBIQCghmaWxlbmFtZRgBIAEoCRIRCglmaWxlX2dsb2IYAiABKAkiWQoMU3RhdFJlc3BvbnNlEigKBHN0YXQYASADKAsyGi5hcHBob3N0aW5nLmZpbGVzLkZpbGVTdGF0Eh8KEG1vcmVfZmlsZXNfZm91bmQYAiACKAg6BWZhbHNlIk0KDUFwcGVuZFJlcXVlc3QSEAoIZmlsZW5hbWUYASACKAkSEAoEZGF0YRgCIAIoDEICCAESGAoMc2VxdWVuY2Vfa2V5GAMgASgJQgIIASIQCg5BcHBlbmRSZXNwb25zZSIhCg1EZWxldGVSZXF1ZXN0EhAKCGZpbGVuYW1lGAEgAigJIhAKDkRlbGV0ZVJlc3BvbnNlIj8KC1JlYWRSZXF1ZXN0EhAKCGZpbGVuYW1lGAEgAigJEgsKA3BvcxgCIAIoAxIRCgltYXhfYnl0ZXMYAyACKAMiIAoMUmVhZFJlc3BvbnNlEhAKBGRhdGEYASACKAxCAggBImQKE1JlYWRLZXlWYWx1ZVJlcXVlc3QSEAoIZmlsZW5hbWUYASACKAkSFQoJc3RhcnRfa2V5GAIgAigMQgIIARIRCgltYXhfYnl0ZXMYAyACKAMSEQoJdmFsdWVfcG9zGAQgASgDIrABChRSZWFkS2V5VmFsdWVSZXNwb25zZRI9CgRkYXRhGAEgAygLMi8uYXBwaG9zdGluZy5maWxlcy5SZWFkS2V5VmFsdWVSZXNwb25zZS5LZXlWYWx1ZRIQCghuZXh0X2tleRgCIAEoDBIXCg90cnVuY2F0ZWRfdmFsdWUYAyABKAgaLgoIS2V5VmFsdWUSDwoDa2V5GAEgAigMQgIIARIRCgV2YWx1ZRgCIAIoDEICCAEiiQIKDFNodWZmbGVFbnVtcyIwCgtJbnB1dEZvcm1hdBIhCh1SRUNPUkRTX0tFWV9WQUxVRV9QUk9UT19JTlBVVBABIjgKDE91dHB1dEZvcm1hdBIoCiRSRUNPUkRTX0tFWV9NVUxUSV9WQUxVRV9QUk9UT19PVVRQVVQQASKMAQoGU3RhdHVzEgsKB1VOS05PV04QARILCgdSVU5OSU5HEAISCwoHU1VDQ0VTUxADEgsKB0ZBSUxVUkUQBBIRCg1JTlZBTElEX0lOUFVUEAUSGQoVT1VUUFVUX0FMUkVBRFlfRVhJU1RTEAYSIAocSU5DT1JSRUNUX1NIVUZGTEVfU0laRV9CWVRFUxAHIoQBChlTaHVmZmxlSW5wdXRTcGVjaWZpY2F0aW9uElkKBmZvcm1hdBgBIAEoDjIqLmFwcGhvc3RpbmcuZmlsZXMuU2h1ZmZsZUVudW1zLklucHV0Rm9ybWF0Oh1SRUNPUkRTX0tFWV9WQUxVRV9QUk9UT19JTlBVVBIMCgRwYXRoGAIgAigJIo0BChpTaHVmZmxlT3V0cHV0U3BlY2lmaWNhdGlvbhJhCgZmb3JtYXQYASABKA4yKy5hcHBob3N0aW5nLmZpbGVzLlNodWZmbGVFbnVtcy5PdXRwdXRGb3JtYXQ6JFJFQ09SRFNfS0VZX01VTFRJX1ZBTFVFX1BST1RPX09VVFBVVBIMCgRwYXRoGAIgAygJItgCCg5TaHVmZmxlUmVxdWVzdBIUCgxzaHVmZmxlX25hbWUYASACKAkSOgoFaW5wdXQYAiADKAsyKy5hcHBob3N0aW5nLmZpbGVzLlNodWZmbGVJbnB1dFNwZWNpZmljYXRpb24SPAoGb3V0cHV0GAMgAigLMiwuYXBwaG9zdGluZy5maWxlcy5TaHVmZmxlT3V0cHV0U3BlY2lmaWNhdGlvbhIaChJzaHVmZmxlX3NpemVfYnl0ZXMYBCACKAMSOwoIY2FsbGJhY2sYBSACKAsyKS5hcHBob3N0aW5nLmZpbGVzLlNodWZmbGVSZXF1ZXN0LkNhbGxiYWNrGl0KCENhbGxiYWNrEgsKA3VybBgBIAIoCRIWCg5hcHBfdmVyc2lvbl9pZBgCIAEoCRIUCgZtZXRob2QYAyABKAk6BFBPU1QSFgoFcXVldWUYBCABKAk6B2RlZmF1bHQiEQoPU2h1ZmZsZVJlc3BvbnNlIi8KF0dldFNodWZmbGVTdGF0dXNSZXF1ZXN0EhQKDHNodWZmbGVfbmFtZRgBIAIoCSJmChhHZXRTaHVmZmxlU3RhdHVzUmVzcG9uc2USNQoGc3RhdHVzGAEgAigOMiUuYXBwaG9zdGluZy5maWxlcy5TaHVmZmxlRW51bXMuU3RhdHVzEhMKC2Rlc2NyaXB0aW9uGAIgASgJIhgKFkdldENhcGFiaWxpdGllc1JlcXVlc3QiSAoXR2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2USEgoKZmlsZXN5c3RlbRgBIAMoCRIZChFzaHVmZmxlX2F2YWlsYWJsZRgCIAIoCCIjCg9GaW5hbGl6ZVJlcXVlc3QSEAoIZmlsZW5hbWUYASACKAkiEgoQRmluYWxpemVSZXNwb25zZSIfCh1HZXREZWZhdWx0R3NCdWNrZXROYW1lUmVxdWVzdCJACh5HZXREZWZhdWx0R3NCdWNrZXROYW1lUmVzcG9uc2USHgoWZGVmYXVsdF9nc19idWNrZXRfbmFtZRgBIAEoCSJQCg5MaXN0RGlyUmVxdWVzdBIMCgRwYXRoGAEgAigJEg4KBm1hcmtlchgCIAEoCRIQCghtYXhfa2V5cxgDIAEoAxIOCgZwcmVmaXgYBCABKAkiJAoPTGlzdERpclJlc3BvbnNlEhEKCWZpbGVuYW1lcxgBIAMoCTLRCQoLRmlsZVNlcnZpY2USTQoGQ3JlYXRlEh8uYXBwaG9zdGluZy5maWxlcy5DcmVhdGVSZXF1ZXN0GiAuYXBwaG9zdGluZy5maWxlcy5DcmVhdGVSZXNwb25zZSIAEkcKBE9wZW4SHS5hcHBob3N0aW5nLmZpbGVzLk9wZW5SZXF1ZXN0Gh4uYXBwaG9zdGluZy5maWxlcy5PcGVuUmVzcG9uc2UiABJKCgVDbG9zZRIeLmFwcGhvc3RpbmcuZmlsZXMuQ2xvc2VSZXF1ZXN0Gh8uYXBwaG9zdGluZy5maWxlcy5DbG9zZVJlc3BvbnNlIgASTQoGQXBwZW5kEh8uYXBwaG9zdGluZy5maWxlcy5BcHBlbmRSZXF1ZXN0GiAuYXBwaG9zdGluZy5maWxlcy5BcHBlbmRSZXNwb25zZSIAEkcKBFN0YXQSHS5hcHBob3N0aW5nLmZpbGVzLlN0YXRSZXF1ZXN0Gh4uYXBwaG9zdGluZy5maWxlcy5TdGF0UmVzcG9uc2UiABJNCgZEZWxldGUSHy5hcHBob3N0aW5nLmZpbGVzLkRlbGV0ZVJlcXVlc3QaIC5hcHBob3N0aW5nLmZpbGVzLkRlbGV0ZVJlc3BvbnNlIgASRwoEUmVhZBIdLmFwcGhvc3RpbmcuZmlsZXMuUmVhZFJlcXVlc3QaHi5hcHBob3N0aW5nLmZpbGVzLlJlYWRSZXNwb25zZSIAEl8KDFJlYWRLZXlWYWx1ZRIlLmFwcGhvc3RpbmcuZmlsZXMuUmVhZEtleVZhbHVlUmVxdWVzdBomLmFwcGhvc3RpbmcuZmlsZXMuUmVhZEtleVZhbHVlUmVzcG9uc2UiABJQCgdTaHVmZmxlEiAuYXBwaG9zdGluZy5maWxlcy5TaHVmZmxlUmVxdWVzdBohLmFwcGhvc3RpbmcuZmlsZXMuU2h1ZmZsZVJlc3BvbnNlIgASawoQR2V0U2h1ZmZsZVN0YXR1cxIpLmFwcGhvc3RpbmcuZmlsZXMuR2V0U2h1ZmZsZVN0YXR1c1JlcXVlc3QaKi5hcHBob3N0aW5nLmZpbGVzLkdldFNodWZmbGVTdGF0dXNSZXNwb25zZSIAEmgKD0dldENhcGFiaWxpdGllcxIoLmFwcGhvc3RpbmcuZmlsZXMuR2V0Q2FwYWJpbGl0aWVzUmVxdWVzdBopLmFwcGhvc3RpbmcuZmlsZXMuR2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2UiABJTCghGaW5hbGl6ZRIhLmFwcGhvc3RpbmcuZmlsZXMuRmluYWxpemVSZXF1ZXN0GiIuYXBwaG9zdGluZy5maWxlcy5GaW5hbGl6ZVJlc3BvbnNlIgASUAoHTGlzdERpchIgLmFwcGhvc3RpbmcuZmlsZXMuTGlzdERpclJlcXVlc3QaIS5hcHBob3N0aW5nLmZpbGVzLkxpc3REaXJSZXNwb25zZSIAEn0KFkdldERlZmF1bHRHc0J1Y2tldE5hbWUSLy5hcHBob3N0aW5nLmZpbGVzLkdldERlZmF1bHRHc0J1Y2tldE5hbWVSZXF1ZXN0GjAuYXBwaG9zdGluZy5maWxlcy5HZXREZWZhdWx0R3NCdWNrZXROYW1lUmVzcG9uc2UiAEIzCh5jb20uZ29vZ2xlLmFwcGVuZ2luZS5hcGkuZmlsZXMQAigCQg1GaWxlU2VydmljZVBi")) | |
if _net_proto___parse__python is not None: | |
_net_proto___parse__python.RegisterType( | |
_SERIALIZED_DESCRIPTOR.tostring()) | |
diff -u -r 1.9.69/google_appengine/google/appengine/api/logservice/log_service_pb.py 1.9.70/google_appengine/google/appengine/api/logservice/log_service_pb.py | |
--- 1.9.69/google_appengine/google/appengine/api/logservice/log_service_pb.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/api/logservice/log_service_pb.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -163,7 +163,7 @@ | |
_STYLE_CONTENT_TYPE = """""" | |
_PROTO_DESCRIPTOR_NAME = 'apphosting.LogServiceError' | |
_SERIALIZED_DESCRIPTOR = array.array('B') | |
- _SERIALIZED_DESCRIPTOR.fromstring(base64.decodestring("WithcHBob3N0aW5nL2FwaS9sb2dzZXJ2aWNlL2xvZ19zZXJ2aWNlLnByb3RvChphcHBob3N0aW5nLkxvZ1NlcnZpY2VFcnJvcnN6CUVycm9yQ29kZYsBkgECT0uYAQCMAYsBkgEPSU5WQUxJRF9SRVFVRVNUmAEBjAGLAZIBDVNUT1JBR0VfRVJST1KYAQKMAXS6Ad0ZCithcHBob3N0aW5nL2FwaS9sb2dzZXJ2aWNlL2xvZ19zZXJ2aWNlLnByb3RvEgphcHBob3N0aW5nGh1hcHBob3N0aW5nL2FwaS9hcGlfYmFzZS5wcm90bxobYXBwaG9zdGluZy9hcGkvc291cmNlLnByb3RvIk4KD0xvZ1NlcnZpY2VFcnJvciI7CglFcnJvckNvZGUSBgoCT0sQABITCg9JTlZBTElEX1JFUVVFU1QQARIRCg1TVE9SQUdFX0VSUk9SEAIifQoOVXNlckFwcExvZ0xpbmUSFgoOdGltZXN0YW1wX3VzZWMYASACKAMSDQoFbGV2ZWwYAiACKAMSDwoHbWVzc2FnZRgDIAIoCRIzCg9zb3VyY2VfbG9jYXRpb24YBCABKAsyGi5hcHBob3N0aW5nLlNvdXJjZUxvY2F0aW9uIj8KD1VzZXJBcHBMb2dHcm91cBIsCghsb2dfbGluZRgCIAMoCzIaLmFwcGhvc3RpbmcuVXNlckFwcExvZ0xpbmUiHAoMRmx1c2hSZXF1ZXN0EgwKBGxvZ3MYASABKAwiIgoQU2V0U3RhdHVzUmVxdWVzdBIOCgZzdGF0dXMYASACKAkiNwoJTG9nT2Zmc2V0EhIKCnJlcXVlc3RfaWQYASABKAwSFgoOcmVxdWVzdF9pZF9zZXQYZSABKAgicAoHTG9nTGluZRIMCgR0aW1lGAEgAigDEg0KBWxldmVsGAIgAigFEhMKC2xvZ19tZXNzYWdlGAMgAigJEjMKD3NvdXJjZV9sb2NhdGlvbhgEIAEoCzIaLmFwcGhvc3RpbmcuU291cmNlTG9jYXRpb24i4gYKClJlcXVlc3RMb2cSDgoGYXBwX2lkGAEgAigJEhoKCW1vZHVsZV9pZBglIAEoCToHZGVmYXVsdBISCgp2ZXJzaW9uX2lkGAIgAigJEhIKCnJlcXVlc3RfaWQYAyACKAwSJQoGb2Zmc2V0GCMgASgLMhUuYXBwaG9zdGluZy5Mb2dPZmZzZXQSCgoCaXAYBCACKAkSEAoIbmlja25hbWUYBSABKAkSEgoKc3RhcnRfdGltZRgGIAIoAxIQCghlbmRfdGltZRgHIAIoAxIPCgdsYXRlbmN5GAggAigDEg8KB21jeWNsZXMYCSACKAMSDgoGbWV0aG9kGAogAigJEhAKCHJlc291cmNlGAsgAigJEhQKDGh0dHBfdmVyc2lvbhgMIAIoCRIOCgZzdGF0dXMYDSACKAUSFQoNcmVzcG9uc2Vfc2l6ZRgOIAIoAxIQCghyZWZlcnJlchgPIAEoCRISCgp1c2VyX2FnZW50GBAgASgJEhUKDXVybF9tYXBfZW50cnkYESACKAkSEAoIY29tYmluZWQYEiACKAkSEwoLYXBpX21jeWNsZXMYEyABKAMSDAoEaG9zdBgUIAEoCRIMCgRjb3N0GBUgASgBEhcKD3Rhc2tfcXVldWVfbmFtZRgWIAEoCRIRCgl0YXNrX25hbWUYFyABKAkSGwoTd2FzX2xvYWRpbmdfcmVxdWVzdBgYIAEoCBIUCgxwZW5kaW5nX3RpbWUYGSABKAMSGQoNcmVwbGljYV9pbmRleBgaIAEoBToCLTESFgoIZmluaXNoZWQYGyABKAg6BHRydWUSEQoJY2xvbmVfa2V5GBwgASgMEiEKBGxpbmUYHSADKAsyEy5hcHBob3N0aW5nLkxvZ0xpbmUSGAoQbGluZXNfaW5jb21wbGV0ZRgkIAEoCBIaChJhcHBfZW5naW5lX3JlbGVhc2UYJiABKAwSEAoIdHJhY2VfaWQYJyABKAkSEwoLZXhpdF9yZWFzb24YHiABKAUSHgoWd2FzX3Rocm90dGxlZF9mb3JfdGltZRgfIAEoCBIiChp3YXNfdGhyb3R0bGVkX2Zvcl9yZXF1ZXN0cxggIAEoCBIWCg50aHJvdHRsZWRfdGltZRghIAEoAxITCgtzZXJ2ZXJfbmFtZRgiIAEoDCJxChBMb2dNb2R1bGVWZXJzaW9uEhoKCW1vZHVsZV9pZBgBIAEoCToHZGVmYXVsdBIVCg1tb2R1bGVfaWRfc2V0GGUgASgIEhIKCnZlcnNpb25faWQYAiABKAkSFgoOdmVyc2lvbl9pZF9zZXQYZiABKAgi1AUKDkxvZ1JlYWRSZXF1ZXN0Eg4KBmFwcF9pZBgBIAIoCRISCgp2ZXJzaW9uX2lkGAIgAygJEjQKDm1vZHVsZV92ZXJzaW9uGBMgAygLMhwuYXBwaG9zdGluZy5Mb2dNb2R1bGVWZXJzaW9uEhIKCnN0YXJ0X3RpbWUYAyABKAMSFgoOc3RhcnRfdGltZV9zZXQYZyABKAgSEAoIZW5kX3RpbWUYBCABKAMSFAoMZW5kX3RpbWVfc2V0GGggASgIEiUKBm9mZnNldBgFIAEoCzIVLmFwcGhvc3RpbmcuTG9nT2Zmc2V0EhIKCnJlcXVlc3RfaWQYBiADKAwSGQoRbWluaW11bV9sb2dfbGV2ZWwYByABKAUSHQoVbWluaW11bV9sb2dfbGV2ZWxfc2V0GGsgASgIEhoKEmluY2x1ZGVfaW5jb21wbGV0ZRgIIAEoCBINCgVjb3VudBgJIAEoAxIRCgljb3VudF9zZXQYbSABKAgSGgoSY29tYmluZWRfbG9nX3JlZ2V4GA4gASgJEh4KFmNvbWJpbmVkX2xvZ19yZWdleF9zZXQYciABKAgSEgoKaG9zdF9yZWdleBgPIAEoCRIWCg5ob3N0X3JlZ2V4X3NldBhzIAEoCBIVCg1yZXBsaWNhX2luZGV4GBAgASgFEhkKEXJlcGxpY2FfaW5kZXhfc2V0GHQgASgIEhgKEGluY2x1ZGVfYXBwX2xvZ3MYCiABKAgSHAoUYXBwX2xvZ3NfcGVyX3JlcXVlc3QYESABKAUSIAoYYXBwX2xvZ3NfcGVyX3JlcXVlc3Rfc2V0GHUgASgIEhQKDGluY2x1ZGVfaG9zdBgLIAEoCBITCgtpbmNsdWRlX2FsbBgMIAEoCBIWCg5jYWNoZV9pdGVyYXRvchgNIAEoCBISCgpudW1fc2hhcmRzGBIgASgFEhYKDm51bV9zaGFyZHNfc2V0GHYgASgIInQKD0xvZ1JlYWRSZXNwb25zZRIjCgNsb2cYASADKAsyFi5hcHBob3N0aW5nLlJlcXVlc3RMb2cSJQoGb2Zmc2V0GAIgASgLMhUuYXBwaG9zdGluZy5Mb2dPZmZzZXQSFQoNbGFzdF9lbmRfdGltZRgDIAEoAyJ+Cg5Mb2dVc2FnZVJlY29yZBISCgp2ZXJzaW9uX2lkGAEgASgJEhIKCnN0YXJ0X3RpbWUYAiABKAUSEAoIZW5kX3RpbWUYAyABKAUSDQoFY291bnQYBCABKAMSEgoKdG90YWxfc2l6ZRgFIAEoAxIPCgdyZWNvcmRzGAYgASgFIvkBCg9Mb2dVc2FnZVJlcXVlc3QSDgoGYXBwX2lkGAEgAigJEhIKCnZlcnNpb25faWQYAiADKAkSEgoKc3RhcnRfdGltZRgDIAEoBRIQCghlbmRfdGltZRgEIAEoBRIbChByZXNvbHV0aW9uX2hvdXJzGAUgASgNOgExEhwKFHJlc29sdXRpb25faG91cnNfc2V0GGkgASgIEhgKEGNvbWJpbmVfdmVyc2lvbnMYBiABKAgSFQoNdXNhZ2VfdmVyc2lvbhgHIAEoBRIZChF1c2FnZV92ZXJzaW9uX3NldBhrIAEoCBIVCg12ZXJzaW9uc19vbmx5GAggASgIImoKEExvZ1VzYWdlUmVzcG9uc2USKQoFdXNhZ2UYASADKAsyGi5hcHBob3N0aW5nLkxvZ1VzYWdlUmVjb3JkEisKB3N1bW1hcnkYAiABKAsyGi5hcHBob3N0aW5nLkxvZ1VzYWdlUmVjb3JkMp8CCgpMb2dTZXJ2aWNlEj8KBUZsdXNoEhguYXBwaG9zdGluZy5GbHVzaFJlcXVlc3QaGi5hcHBob3N0aW5nLmJhc2UuVm9pZFByb3RvIgASRwoJU2V0U3RhdHVzEhwuYXBwaG9zdGluZy5TZXRTdGF0dXNSZXF1ZXN0GhouYXBwaG9zdGluZy5iYXNlLlZvaWRQcm90byIAEkEKBFJlYWQSGi5hcHBob3N0aW5nLkxvZ1JlYWRSZXF1ZXN0GhsuYXBwaG9zdGluZy5Mb2dSZWFkUmVzcG9uc2UiABJECgVVc2FnZRIbLmFwcGhvc3RpbmcuTG9nVXNhZ2VSZXF1ZXN0GhwuYXBwaG9zdGluZy5Mb2dVc2FnZVJlc3BvbnNlIgBCOgokY29tLmdvb2dsZS5hcHBob3N0aW5nLmFwaS5sb2dzZXJ2aWNlEAIgASgBQgxMb2dTZXJ2aWNlUGI=")) | |
+ _SERIALIZED_DESCRIPTOR.fromstring(base64.decodestring("WithcHBob3N0aW5nL2FwaS9sb2dzZXJ2aWNlL2xvZ19zZXJ2aWNlLnByb3RvChphcHBob3N0aW5nLkxvZ1NlcnZpY2VFcnJvcnN6CUVycm9yQ29kZYsBkgECT0uYAQCMAYsBkgEPSU5WQUxJRF9SRVFVRVNUmAEBjAGLAZIBDVNUT1JBR0VfRVJST1KYAQKMAXS6AdsZCithcHBob3N0aW5nL2FwaS9sb2dzZXJ2aWNlL2xvZ19zZXJ2aWNlLnByb3RvEgphcHBob3N0aW5nGh1hcHBob3N0aW5nL2FwaS9hcGlfYmFzZS5wcm90bxobYXBwaG9zdGluZy9hcGkvc291cmNlLnByb3RvIk4KD0xvZ1NlcnZpY2VFcnJvciI7CglFcnJvckNvZGUSBgoCT0sQABITCg9JTlZBTElEX1JFUVVFU1QQARIRCg1TVE9SQUdFX0VSUk9SEAIifQoOVXNlckFwcExvZ0xpbmUSFgoOdGltZXN0YW1wX3VzZWMYASACKAMSDQoFbGV2ZWwYAiACKAMSDwoHbWVzc2FnZRgDIAIoCRIzCg9zb3VyY2VfbG9jYXRpb24YBCABKAsyGi5hcHBob3N0aW5nLlNvdXJjZUxvY2F0aW9uIj8KD1VzZXJBcHBMb2dHcm91cBIsCghsb2dfbGluZRgCIAMoCzIaLmFwcGhvc3RpbmcuVXNlckFwcExvZ0xpbmUiHAoMRmx1c2hSZXF1ZXN0EgwKBGxvZ3MYASABKAwiIgoQU2V0U3RhdHVzUmVxdWVzdBIOCgZzdGF0dXMYASACKAkiNwoJTG9nT2Zmc2V0EhIKCnJlcXVlc3RfaWQYASABKAwSFgoOcmVxdWVzdF9pZF9zZXQYZSABKAgicAoHTG9nTGluZRIMCgR0aW1lGAEgAigDEg0KBWxldmVsGAIgAigFEhMKC2xvZ19tZXNzYWdlGAMgAigJEjMKD3NvdXJjZV9sb2NhdGlvbhgEIAEoCzIaLmFwcGhvc3RpbmcuU291cmNlTG9jYXRpb24i4gYKClJlcXVlc3RMb2cSDgoGYXBwX2lkGAEgAigJEhoKCW1vZHVsZV9pZBglIAEoCToHZGVmYXVsdBISCgp2ZXJzaW9uX2lkGAIgAigJEhIKCnJlcXVlc3RfaWQYAyACKAwSJQoGb2Zmc2V0GCMgASgLMhUuYXBwaG9zdGluZy5Mb2dPZmZzZXQSCgoCaXAYBCACKAkSEAoIbmlja25hbWUYBSABKAkSEgoKc3RhcnRfdGltZRgGIAIoAxIQCghlbmRfdGltZRgHIAIoAxIPCgdsYXRlbmN5GAggAigDEg8KB21jeWNsZXMYCSACKAMSDgoGbWV0aG9kGAogAigJEhAKCHJlc291cmNlGAsgAigJEhQKDGh0dHBfdmVyc2lvbhgMIAIoCRIOCgZzdGF0dXMYDSACKAUSFQoNcmVzcG9uc2Vfc2l6ZRgOIAIoAxIQCghyZWZlcnJlchgPIAEoCRISCgp1c2VyX2FnZW50GBAgASgJEhUKDXVybF9tYXBfZW50cnkYESACKAkSEAoIY29tYmluZWQYEiACKAkSEwoLYXBpX21jeWNsZXMYEyABKAMSDAoEaG9zdBgUIAEoCRIMCgRjb3N0GBUgASgBEhcKD3Rhc2tfcXVldWVfbmFtZRgWIAEoCRIRCgl0YXNrX25hbWUYFyABKAkSGwoTd2FzX2xvYWRpbmdfcmVxdWVzdBgYIAEoCBIUCgxwZW5kaW5nX3RpbWUYGSABKAMSGQoNcmVwbGljYV9pbmRleBgaIAEoBToCLTESFgoIZmluaXNoZWQYGyABKAg6BHRydWUSEQoJY2xvbmVfa2V5GBwgASgMEiEKBGxpbmUYHSADKAsyEy5hcHBob3N0aW5nLkxvZ0xpbmUSGAoQbGluZXNfaW5jb21wbGV0ZRgkIAEoCBIaChJhcHBfZW5naW5lX3JlbGVhc2UYJiABKAwSEAoIdHJhY2VfaWQYJyABKAkSEwoLZXhpdF9yZWFzb24YHiABKAUSHgoWd2FzX3Rocm90dGxlZF9mb3JfdGltZRgfIAEoCBIiChp3YXNfdGhyb3R0bGVkX2Zvcl9yZXF1ZXN0cxggIAEoCBIWCg50aHJvdHRsZWRfdGltZRghIAEoAxITCgtzZXJ2ZXJfbmFtZRgiIAEoDCJxChBMb2dNb2R1bGVWZXJzaW9uEhoKCW1vZHVsZV9pZBgBIAEoCToHZGVmYXVsdBIVCg1tb2R1bGVfaWRfc2V0GGUgASgIEhIKCnZlcnNpb25faWQYAiABKAkSFgoOdmVyc2lvbl9pZF9zZXQYZiABKAgi1AUKDkxvZ1JlYWRSZXF1ZXN0Eg4KBmFwcF9pZBgBIAIoCRISCgp2ZXJzaW9uX2lkGAIgAygJEjQKDm1vZHVsZV92ZXJzaW9uGBMgAygLMhwuYXBwaG9zdGluZy5Mb2dNb2R1bGVWZXJzaW9uEhIKCnN0YXJ0X3RpbWUYAyABKAMSFgoOc3RhcnRfdGltZV9zZXQYZyABKAgSEAoIZW5kX3RpbWUYBCABKAMSFAoMZW5kX3RpbWVfc2V0GGggASgIEiUKBm9mZnNldBgFIAEoCzIVLmFwcGhvc3RpbmcuTG9nT2Zmc2V0EhIKCnJlcXVlc3RfaWQYBiADKAwSGQoRbWluaW11bV9sb2dfbGV2ZWwYByABKAUSHQoVbWluaW11bV9sb2dfbGV2ZWxfc2V0GGsgASgIEhoKEmluY2x1ZGVfaW5jb21wbGV0ZRgIIAEoCBINCgVjb3VudBgJIAEoAxIRCgljb3VudF9zZXQYbSABKAgSGgoSY29tYmluZWRfbG9nX3JlZ2V4GA4gASgJEh4KFmNvbWJpbmVkX2xvZ19yZWdleF9zZXQYciABKAgSEgoKaG9zdF9yZWdleBgPIAEoCRIWCg5ob3N0X3JlZ2V4X3NldBhzIAEoCBIVCg1yZXBsaWNhX2luZGV4GBAgASgFEhkKEXJlcGxpY2FfaW5kZXhfc2V0GHQgASgIEhgKEGluY2x1ZGVfYXBwX2xvZ3MYCiABKAgSHAoUYXBwX2xvZ3NfcGVyX3JlcXVlc3QYESABKAUSIAoYYXBwX2xvZ3NfcGVyX3JlcXVlc3Rfc2V0GHUgASgIEhQKDGluY2x1ZGVfaG9zdBgLIAEoCBITCgtpbmNsdWRlX2FsbBgMIAEoCBIWCg5jYWNoZV9pdGVyYXRvchgNIAEoCBISCgpudW1fc2hhcmRzGBIgASgFEhYKDm51bV9zaGFyZHNfc2V0GHYgASgIInQKD0xvZ1JlYWRSZXNwb25zZRIjCgNsb2cYASADKAsyFi5hcHBob3N0aW5nLlJlcXVlc3RMb2cSJQoGb2Zmc2V0GAIgASgLMhUuYXBwaG9zdGluZy5Mb2dPZmZzZXQSFQoNbGFzdF9lbmRfdGltZRgDIAEoAyJ+Cg5Mb2dVc2FnZVJlY29yZBISCgp2ZXJzaW9uX2lkGAEgASgJEhIKCnN0YXJ0X3RpbWUYAiABKAUSEAoIZW5kX3RpbWUYAyABKAUSDQoFY291bnQYBCABKAMSEgoKdG90YWxfc2l6ZRgFIAEoAxIPCgdyZWNvcmRzGAYgASgFIvkBCg9Mb2dVc2FnZVJlcXVlc3QSDgoGYXBwX2lkGAEgAigJEhIKCnZlcnNpb25faWQYAiADKAkSEgoKc3RhcnRfdGltZRgDIAEoBRIQCghlbmRfdGltZRgEIAEoBRIbChByZXNvbHV0aW9uX2hvdXJzGAUgASgNOgExEhwKFHJlc29sdXRpb25faG91cnNfc2V0GGkgASgIEhgKEGNvbWJpbmVfdmVyc2lvbnMYBiABKAgSFQoNdXNhZ2VfdmVyc2lvbhgHIAEoBRIZChF1c2FnZV92ZXJzaW9uX3NldBhrIAEoCBIVCg12ZXJzaW9uc19vbmx5GAggASgIImoKEExvZ1VzYWdlUmVzcG9uc2USKQoFdXNhZ2UYASADKAsyGi5hcHBob3N0aW5nLkxvZ1VzYWdlUmVjb3JkEisKB3N1bW1hcnkYAiABKAsyGi5hcHBob3N0aW5nLkxvZ1VzYWdlUmVjb3JkMp8CCgpMb2dTZXJ2aWNlEj8KBUZsdXNoEhguYXBwaG9zdGluZy5GbHVzaFJlcXVlc3QaGi5hcHBob3N0aW5nLmJhc2UuVm9pZFByb3RvIgASRwoJU2V0U3RhdHVzEhwuYXBwaG9zdGluZy5TZXRTdGF0dXNSZXF1ZXN0GhouYXBwaG9zdGluZy5iYXNlLlZvaWRQcm90byIAEkEKBFJlYWQSGi5hcHBob3N0aW5nLkxvZ1JlYWRSZXF1ZXN0GhsuYXBwaG9zdGluZy5Mb2dSZWFkUmVzcG9uc2UiABJECgVVc2FnZRIbLmFwcGhvc3RpbmcuTG9nVXNhZ2VSZXF1ZXN0GhwuYXBwaG9zdGluZy5Mb2dVc2FnZVJlc3BvbnNlIgBCOAokY29tLmdvb2dsZS5hcHBob3N0aW5nLmFwaS5sb2dzZXJ2aWNlEAIoAUIMTG9nU2VydmljZVBi")) | |
if _net_proto___parse__python is not None: | |
_net_proto___parse__python.RegisterType( | |
_SERIALIZED_DESCRIPTOR.tostring()) | |
diff -u -r 1.9.69/google_appengine/google/appengine/api/mail_stub.py 1.9.70/google_appengine/google/appengine/api/mail_stub.py | |
--- 1.9.69/google_appengine/google/appengine/api/mail_stub.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/api/mail_stub.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -30,6 +30,7 @@ | |
+import collections | |
from email import encoders | |
import functools | |
import logging | |
@@ -192,7 +193,7 @@ | |
Returns: | |
An instance of mail.EmailMessage. | |
""" | |
- headers = {} | |
+ headers = collections.OrderedDict() | |
for header in mail_message_proto.header_list(): | |
headers[header.name()] = header.value() | |
if headers: | |
diff -u -r 1.9.69/google_appengine/google/appengine/api/system/system_service_pb.py 1.9.70/google_appengine/google/appengine/api/system/system_service_pb.py | |
--- 1.9.69/google_appengine/google/appengine/api/system/system_service_pb.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/api/system/system_service_pb.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -159,7 +159,7 @@ | |
_STYLE_CONTENT_TYPE = """""" | |
_PROTO_DESCRIPTOR_NAME = 'apphosting.SystemServiceError' | |
_SERIALIZED_DESCRIPTOR = array.array('B') | |
- _SERIALIZED_DESCRIPTOR.fromstring(base64.decodestring("WiphcHBob3N0aW5nL2FwaS9zeXN0ZW0vc3lzdGVtX3NlcnZpY2UucHJvdG8KHWFwcGhvc3RpbmcuU3lzdGVtU2VydmljZUVycm9yc3oJRXJyb3JDb2RliwGSAQJPS5gBAIwBiwGSAQ5JTlRFUk5BTF9FUlJPUpgBAYwBiwGSARBCQUNLRU5EX1JFUVVJUkVEmAECjAGLAZIBDUxJTUlUX1JFQUNIRUSYAQOMAXS6AYcGCiphcHBob3N0aW5nL2FwaS9zeXN0ZW0vc3lzdGVtX3NlcnZpY2UucHJvdG8SCmFwcGhvc3RpbmciZgoSU3lzdGVtU2VydmljZUVycm9yIlAKCUVycm9yQ29kZRIGCgJPSxAAEhIKDklOVEVSTkFMX0VSUk9SEAESFAoQQkFDS0VORF9SRVFVSVJFRBACEhEKDUxJTUlUX1JFQUNIRUQQAyJ0CgpTeXN0ZW1TdGF0Eg8KB2N1cnJlbnQYASABKAESEQoJYXZlcmFnZTFtGAMgASgBEhIKCmF2ZXJhZ2UxMG0YBCABKAESDQoFdG90YWwYAiABKAESDgoGcmF0ZTFtGAUgASgBEg8KB3JhdGUxMG0YBiABKAEiFwoVR2V0U3lzdGVtU3RhdHNSZXF1ZXN0ImUKFkdldFN5c3RlbVN0YXRzUmVzcG9uc2USIwoDY3B1GAEgASgLMhYuYXBwaG9zdGluZy5TeXN0ZW1TdGF0EiYKBm1lbW9yeRgCIAEoCzIWLmFwcGhvc3RpbmcuU3lzdGVtU3RhdCIfCh1TdGFydEJhY2tncm91bmRSZXF1ZXN0UmVxdWVzdCI0Ch5TdGFydEJhY2tncm91bmRSZXF1ZXN0UmVzcG9uc2USEgoKcmVxdWVzdF9pZBgBIAEoCTLdAQoNU3lzdGVtU2VydmljZRJZCg5HZXRTeXN0ZW1TdGF0cxIhLmFwcGhvc3RpbmcuR2V0U3lzdGVtU3RhdHNSZXF1ZXN0GiIuYXBwaG9zdGluZy5HZXRTeXN0ZW1TdGF0c1Jlc3BvbnNlIgAScQoWU3RhcnRCYWNrZ3JvdW5kUmVxdWVzdBIpLmFwcGhvc3RpbmcuU3RhcnRCYWNrZ3JvdW5kUmVxdWVzdFJlcXVlc3QaKi5hcHBob3N0aW5nLlN0YXJ0QmFja2dyb3VuZFJlcXVlc3RSZXNwb25zZSIAQjgKH2NvbS5nb29nbGUuYXBwZW5naW5lLmFwaS5zeXN0ZW0QAiABKAJCD1N5c3RlbVNlcnZpY2VQYg==")) | |
+ _SERIALIZED_DESCRIPTOR.fromstring(base64.decodestring("WiphcHBob3N0aW5nL2FwaS9zeXN0ZW0vc3lzdGVtX3NlcnZpY2UucHJvdG8KHWFwcGhvc3RpbmcuU3lzdGVtU2VydmljZUVycm9yc3oJRXJyb3JDb2RliwGSAQJPS5gBAIwBiwGSAQ5JTlRFUk5BTF9FUlJPUpgBAYwBiwGSARBCQUNLRU5EX1JFUVVJUkVEmAECjAGLAZIBDUxJTUlUX1JFQUNIRUSYAQOMAXS6AYUGCiphcHBob3N0aW5nL2FwaS9zeXN0ZW0vc3lzdGVtX3NlcnZpY2UucHJvdG8SCmFwcGhvc3RpbmciZgoSU3lzdGVtU2VydmljZUVycm9yIlAKCUVycm9yQ29kZRIGCgJPSxAAEhIKDklOVEVSTkFMX0VSUk9SEAESFAoQQkFDS0VORF9SRVFVSVJFRBACEhEKDUxJTUlUX1JFQUNIRUQQAyJ0CgpTeXN0ZW1TdGF0Eg8KB2N1cnJlbnQYASABKAESEQoJYXZlcmFnZTFtGAMgASgBEhIKCmF2ZXJhZ2UxMG0YBCABKAESDQoFdG90YWwYAiABKAESDgoGcmF0ZTFtGAUgASgBEg8KB3JhdGUxMG0YBiABKAEiFwoVR2V0U3lzdGVtU3RhdHNSZXF1ZXN0ImUKFkdldFN5c3RlbVN0YXRzUmVzcG9uc2USIwoDY3B1GAEgASgLMhYuYXBwaG9zdGluZy5TeXN0ZW1TdGF0EiYKBm1lbW9yeRgCIAEoCzIWLmFwcGhvc3RpbmcuU3lzdGVtU3RhdCIfCh1TdGFydEJhY2tncm91bmRSZXF1ZXN0UmVxdWVzdCI0Ch5TdGFydEJhY2tncm91bmRSZXF1ZXN0UmVzcG9uc2USEgoKcmVxdWVzdF9pZBgBIAEoCTLdAQoNU3lzdGVtU2VydmljZRJZCg5HZXRTeXN0ZW1TdGF0cxIhLmFwcGhvc3RpbmcuR2V0U3lzdGVtU3RhdHNSZXF1ZXN0GiIuYXBwaG9zdGluZy5HZXRTeXN0ZW1TdGF0c1Jlc3BvbnNlIgAScQoWU3RhcnRCYWNrZ3JvdW5kUmVxdWVzdBIpLmFwcGhvc3RpbmcuU3RhcnRCYWNrZ3JvdW5kUmVxdWVzdFJlcXVlc3QaKi5hcHBob3N0aW5nLlN0YXJ0QmFja2dyb3VuZFJlcXVlc3RSZXNwb25zZSIAQjYKH2NvbS5nb29nbGUuYXBwZW5naW5lLmFwaS5zeXN0ZW0QAigCQg9TeXN0ZW1TZXJ2aWNlUGI=")) | |
if _net_proto___parse__python is not None: | |
_net_proto___parse__python.RegisterType( | |
_SERIALIZED_DESCRIPTOR.tostring()) | |
diff -u -r 1.9.69/google_appengine/google/appengine/client/services/port_manager.py 1.9.70/google_appengine/google/appengine/client/services/port_manager.py | |
--- 1.9.69/google_appengine/google/appengine/client/services/port_manager.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/client/services/port_manager.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -20,7 +20,6 @@ | |
import re | |
# These ports are reserved for future usage. | |
-# Port 10400 reserved for gitkit container. | |
RESERVED_INTERNAL_PORTS = range(10400, 10500) | |
# These ports are used by our code or critical system daemons. | |
diff -u -r 1.9.69/google_appengine/google/appengine/datastore/entity_pb.py 1.9.70/google_appengine/google/appengine/datastore/entity_pb.py | |
--- 1.9.69/google_appengine/google/appengine/datastore/entity_pb.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/datastore/entity_pb.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -3410,11 +3410,13 @@ | |
VERSION_UNSPECIFIED = 0 | |
V1 = 1 | |
V2 = 2 | |
+ V3 = 3 | |
_Version_NAMES = { | |
0: "VERSION_UNSPECIFIED", | |
1: "V1", | |
2: "V2", | |
+ 3: "V3", | |
} | |
def Version_Name(cls, x): return cls._Version_NAMES.get(x, "") | |
diff -u -r 1.9.69/google_appengine/google/appengine/ext/appstats/static/appstats_js.js 1.9.70/google_appengine/google/appengine/ext/appstats/static/appstats_js.js | |
--- 1.9.69/google_appengine/google/appengine/ext/appstats/static/appstats_js.js 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/ext/appstats/static/appstats_js.js 2018-05-29 11:47:31.000000000 -0700 | |
@@ -1,104 +1,111 @@ | |
-/* Copyright 2008-10 Google Inc. All Rights Reserved. */ (function(){var f,l=this,m=function(a){return void 0!==a},n=function(a){return"string"==typeof a},aa=function(){},ba=function(a){a.ub=void 0;a.qa=function(){return a.ub?a.ub:a.ub=new a}},ca=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array"; | |
+/* Copyright 2008-10 Google Inc. All Rights Reserved. */ (function(){var f,l=this,m=function(a){return void 0!==a},n=function(a){return"string"==typeof a},aa=function(){},ba=function(a){a.Bb=void 0;a.ta=function(){return a.Bb?a.Bb:a.Bb=new a}},ca=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array"; | |
if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==b&&"undefined"==typeof a.call)return"object";return b},p=function(a){return"array"==ca(a)},da=function(a){var b=ca(a);return"array"==b||"object"==b&&"number"==typeof a.length},q=function(a){return"function"==ca(a)},r=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b},ha=function(a){return a[ea]|| | |
(a[ea]=++fa)},ea="closure_uid_"+(1E9*Math.random()>>>0),fa=0,ia=function(a,b,c){return a.call.apply(a.bind,arguments)},ja=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}},ka=function(a,b,c){ka=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")? | |
ia:ja;return ka.apply(null,arguments)},la=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}},ma=function(a,b){a=a.split(".");var c=l;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&m(b)?c[d]=b:c=c[d]&&c[d]!==Object.prototype[d]?c[d]:c[d]={}},t=function(a,b){function c(){}c.prototype=b.prototype;a.g=b.prototype;a.prototype=new c;a.prototype.constructor= | |
-a;a.ye=function(a,c,g){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};var na=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,na);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))};t(na,Error);na.prototype.name="CustomError";var oa;var pa=function(a,b){a=a.split("%s");for(var c="",d=a.length-1,e=0;e<d;e++)c+=a[e]+(e<b.length?b[e]:"%s");na.call(this,c+a[d])};t(pa,na);pa.prototype.name="AssertionError"; | |
+a;a.Fh=function(a,c,g){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};var na=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,na);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))};t(na,Error);na.prototype.name="CustomError";var oa;var pa=function(a,b){a=a.split("%s");for(var c="",d=a.length-1,e=0;e<d;e++)c+=a[e]+(e<b.length?b[e]:"%s");na.call(this,c+a[d])};t(pa,na);pa.prototype.name="AssertionError"; | |
var qa=function(a,b,c,d){var e="Assertion failed";if(c){e+=": "+c;var g=d}else a&&(e+=": "+a,g=b);throw new pa(""+e,g||[]);},u=function(a,b,c){a||qa("",null,b,Array.prototype.slice.call(arguments,2));return a},ra=function(a,b,c){r(a)&&1==a.nodeType||qa("Expected Element but got %s: %s.",[ca(a),a],b,Array.prototype.slice.call(arguments,2))},ta=function(a,b,c,d){a instanceof b||qa("Expected instanceof %s but got %s.",[sa(b),sa(a)],c,Array.prototype.slice.call(arguments,3))},sa=function(a){return a instanceof | |
Function?a.displayName||a.name||"unknown type name":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?"null":typeof a};var ua=Array.prototype.indexOf?function(a,b){u(null!=a.length);return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(n(a))return n(b)&&1==b.length?a.indexOf(b,0):-1;for(var c=0;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1},v=Array.prototype.forEach?function(a,b,c){u(null!=a.length);Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=n(a)?a.split(""):a,g=0;g<d;g++)g in e&&b.call(c,e[g],g,a)},va=Array.prototype.filter?function(a,b){u(null!=a.length);return Array.prototype.filter.call(a, | |
b,void 0)}:function(a,b){for(var c=a.length,d=[],e=0,g=n(a)?a.split(""):a,h=0;h<c;h++)if(h in g){var k=g[h];b.call(void 0,k,h,a)&&(d[e++]=k)}return d},wa=Array.prototype.every?function(a,b){u(null!=a.length);return Array.prototype.every.call(a,b,void 0)}:function(a,b){for(var c=a.length,d=n(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&!b.call(void 0,d[e],e,a))return!1;return!0},w=function(a,b){return 0<=ua(a,b)},xa=function(a,b){b=ua(a,b);var c;if(c=0<=b)u(null!=a.length),Array.prototype.splice.call(a, | |
b,1);return c},ya=function(a){return Array.prototype.concat.apply([],arguments)},za=function(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]},Ba=function(a,b,c,d){u(null!=a.length);Array.prototype.splice.apply(a,Aa(arguments,1))},Aa=function(a,b,c){u(null!=a.length);return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};var Ca=String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]},Ka=function(a){if(!Da.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(Ea,"&"));-1!=a.indexOf("<")&&(a=a.replace(Fa,"<"));-1!=a.indexOf(">")&&(a=a.replace(Ga,">"));-1!=a.indexOf('"')&&(a=a.replace(Ha,"""));-1!=a.indexOf("'")&&(a=a.replace(Ia,"'"));-1!=a.indexOf("\x00")&&(a=a.replace(Ja,"�"));return a},Ea=/&/g,Fa=/</g,Ga=/>/g,Ha=/"/g,Ia=/'/g,Ja=/\x00/g,Da= | |
-/[\x00&<>"']/,x=function(a,b){return-1!=a.indexOf(b)},La=function(a,b){return a<b?-1:a>b?1:0};var y;a:{var Ma=l.navigator;if(Ma){var Oa=Ma.userAgent;if(Oa){y=Oa;break a}}y=""};var Pa=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)},Qa=function(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return!0;return!1},Ra=function(a,b){for(var c in a)if(a[c]==b)return!0;return!1},Sa=function(a,b,c){if(null!==a&&b in a)throw Error('The object already contains the key "'+b+'"');a[b]=c},Ta=function(a){var b={},c;for(c in a)b[a[c]]=c;return b},Ua="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),Va=function(a,b){for(var c,d,e= | |
+/[\x00&<>"']/,x=function(a,b){return-1!=a.indexOf(b)},La=function(a,b){return a<b?-1:a>b?1:0};var y;a:{var Ma=l.navigator;if(Ma){var Na=Ma.userAgent;if(Na){y=Na;break a}}y=""};var Oa=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)},Pa=function(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return!0;return!1},Ra=function(a,b){for(var c in a)if(a[c]==b)return!0;return!1},Sa=function(a,b,c){if(null!==a&&b in a)throw Error('The object already contains the key "'+b+'"');a[b]=c},Ta=function(a){var b={},c;for(c in a)b[a[c]]=c;return b},Ua="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),Va=function(a,b){for(var c,d,e= | |
1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var g=0;g<Ua.length;g++)c=Ua[g],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};var Wa=function(a){Wa[" "](a);return a};Wa[" "]=aa;var Ya=function(a,b){var c=Xa;return Object.prototype.hasOwnProperty.call(c,a)?c[a]:c[a]=b(a)};var Za=x(y,"Opera"),z=x(y,"Trident")||x(y,"MSIE"),A=x(y,"Edge"),$a=x(y,"Gecko")&&!(x(y.toLowerCase(),"webkit")&&!x(y,"Edge"))&&!(x(y,"Trident")||x(y,"MSIE"))&&!x(y,"Edge"),B=x(y.toLowerCase(),"webkit")&&!x(y,"Edge"),C=x(y,"Macintosh"),ab=function(){var a=l.document;return a?a.documentMode:void 0},bb; | |
a:{var cb="",db=function(){var a=y;if($a)return/rv:([^\);]+)(\)|;)/.exec(a);if(A)return/Edge\/([\d\.]+)/.exec(a);if(z)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(B)return/WebKit\/(\S+)/.exec(a);if(Za)return/(?:Version)[ \/]?(\S+)/.exec(a)}();db&&(cb=db?db[1]:"");if(z){var eb=ab();if(null!=eb&&eb>parseFloat(cb)){bb=String(eb);break a}}bb=cb} | |
var fb=bb,Xa={},D=function(a){return Ya(a,function(){for(var b=0,c=Ca(String(fb)).split("."),d=Ca(String(a)).split("."),e=Math.max(c.length,d.length),g=0;0==b&&g<e;g++){var h=c[g]||"",k=d[g]||"";do{h=/(\d*)(\D*)(.*)/.exec(h)||["","","",""];k=/(\d*)(\D*)(.*)/.exec(k)||["","","",""];if(0==h[0].length&&0==k[0].length)break;b=La(0==h[1].length?0:parseInt(h[1],10),0==k[1].length?0:parseInt(k[1],10))||La(0==h[2].length,0==k[2].length)||La(h[2],k[2]);h=h[3];k=k[3]}while(0==b)}return 0<=b})},gb;var hb=l.document; | |
gb=hb&&z?ab()||("CSS1Compat"==hb.compatMode?parseInt(fb,10):5):void 0;var ib=!z||9<=Number(gb),jb=z&&!D("9");var mb=function(a){return a?new kb(lb(a)):oa||(oa=new kb)},nb=function(a,b){return n(b)?a.getElementById(b):b},ob=function(a,b,c){var d=document;c=c||d;a=a&&"*"!=a?String(a).toUpperCase():"";if(c.querySelectorAll&&c.querySelector&&(a||b))return c.querySelectorAll(a+(b?"."+b:""));if(b&&c.getElementsByClassName){c=c.getElementsByClassName(b);if(a){d={};for(var e=0,g=0,h;h=c[g];g++)a==h.nodeName&&(d[e++]=h);d.length=e;return d}return c}c=c.getElementsByTagName(a||"*");if(b){d={};for(g=e=0;h=c[g];g++)a= | |
-h.className,"function"==typeof a.split&&w(a.split(/\s+/),b)&&(d[e++]=h);d.length=e;return d}return c},qb=function(a,b){Pa(b,function(b,d){b&&b.Ae&&(b=b.ze());"style"==d?a.style.cssText=b:"class"==d?a.className=b:"for"==d?a.htmlFor=b:pb.hasOwnProperty(d)?a.setAttribute(pb[d],b):0==d.lastIndexOf("aria-",0)||0==d.lastIndexOf("data-",0)?a.setAttribute(d,b):a[d]=b})},pb={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength", | |
+h.className,"function"==typeof a.split&&w(a.split(/\s+/),b)&&(d[e++]=h);d.length=e;return d}return c},qb=function(a,b){Oa(b,function(b,d){b&&b.Hh&&(b=b.Gh());"style"==d?a.style.cssText=b:"class"==d?a.className=b:"for"==d?a.htmlFor=b:pb.hasOwnProperty(d)?a.setAttribute(pb[d],b):0==d.lastIndexOf("aria-",0)||0==d.lastIndexOf("data-",0)?a.setAttribute(d,b):a[d]=b})},pb={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength", | |
nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"},sb=function(a,b,c){return rb(document,arguments)},rb=function(a,b){var c=String(b[0]),d=b[1];if(!ib&&d&&(d.name||d.type)){c=["<",c];d.name&&c.push(' name="',Ka(d.name),'"');if(d.type){c.push(' type="',Ka(d.type),'"');var e={};Va(e,d);delete e.type;d=e}c.push(">");c=c.join("")}c=a.createElement(c);d&&(n(d)?c.className=d:p(d)?c.className=d.join(" "):qb(c,d));2<b.length&&tb(a,c,b,2);return c},tb=function(a, | |
b,c,d){function e(c){c&&b.appendChild(n(c)?a.createTextNode(c):c)}for(;d<c.length;d++){var g=c[d];if(!da(g)||r(g)&&0<g.nodeType)e(g);else{a:{if(g&&"number"==typeof g.length){if(r(g)){var h="function"==typeof g.item||"string"==typeof g.item;break a}if(q(g)){h="function"==typeof g.item;break a}}h=!1}v(h?za(g):g,e)}}},ub=function(a){return a&&a.parentNode?a.parentNode.removeChild(a):null},vb=function(a,b){if(!a||!b)return!1;if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if("undefined"!=typeof a.compareDocumentPosition)return a== | |
b||!!(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a},lb=function(a){u(a,"Node cannot be null or undefined.");return 9==a.nodeType?a:a.ownerDocument||a.document},wb=function(a,b){u(null!=a,"goog.dom.setTextContent expects a non-null value for node");if("textContent"in a)a.textContent=b;else if(3==a.nodeType)a.data=String(b);else if(a.firstChild&&3==a.firstChild.nodeType){for(;a.lastChild!=a.firstChild;)a.removeChild(a.lastChild);a.firstChild.data=String(b)}else{for(var c;c= | |
a.firstChild;)a.removeChild(c);c=lb(a);a.appendChild(c.createTextNode(String(b)))}},xb={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},yb={IMG:" ",BR:"\n"},Bb=function(a){return zb(a)&&Ab(a)},Cb=function(a,b){b?a.tabIndex=0:(a.tabIndex=-1,a.removeAttribute("tabIndex"))},zb=function(a){return z&&!D("9")?(a=a.getAttributeNode("tabindex"),null!=a&&a.specified):a.hasAttribute("tabindex")},Ab=function(a){a=a.tabIndex;return"number"==typeof a&&0<=a&&32768>a},Db=function(a,b,c){if(!(a.nodeName in xb))if(3== | |
-a.nodeType)c?b.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g,"")):b.push(a.nodeValue);else if(a.nodeName in yb)b.push(yb[a.nodeName]);else for(a=a.firstChild;a;)Db(a,b,c),a=a.nextSibling},kb=function(a){this.Y=a||l.document||document};f=kb.prototype;f.nb=mb;f.a=function(a){return nb(this.Y,a)};f.getElementsByTagName=function(a,b){return(b||this.Y).getElementsByTagName(String(a))};f.D=function(a,b,c){return rb(this.Y,arguments)};f.createElement=function(a){return this.Y.createElement(String(a))}; | |
+a.nodeType)c?b.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g,"")):b.push(a.nodeValue);else if(a.nodeName in yb)b.push(yb[a.nodeName]);else for(a=a.firstChild;a;)Db(a,b,c),a=a.nextSibling},kb=function(a){this.Y=a||l.document||document};f=kb.prototype;f.ub=mb;f.a=function(a){return nb(this.Y,a)};f.getElementsByTagName=function(a,b){return(b||this.Y).getElementsByTagName(String(a))};f.D=function(a,b,c){return rb(this.Y,arguments)};f.createElement=function(a){return this.Y.createElement(String(a))}; | |
f.createTextNode=function(a){return this.Y.createTextNode(String(a))};f.appendChild=function(a,b){a.appendChild(b)};f.append=function(a,b){tb(lb(a),a,arguments,1)};f.canHaveChildren=function(a){if(1!=a.nodeType)return!1;switch(a.tagName){case "APPLET":case "AREA":case "BASE":case "BR":case "COL":case "COMMAND":case "EMBED":case "FRAME":case "HR":case "IMG":case "INPUT":case "IFRAME":case "ISINDEX":case "KEYGEN":case "LINK":case "NOFRAMES":case "NOSCRIPT":case "META":case "OBJECT":case "PARAM":case "SCRIPT":case "SOURCE":case "STYLE":case "TRACK":case "WBR":return!1}return!0}; | |
-f.removeNode=ub;f.contains=vb;f.ba=function(a){var b;(b="A"==a.tagName||"INPUT"==a.tagName||"TEXTAREA"==a.tagName||"SELECT"==a.tagName||"BUTTON"==a.tagName?!a.disabled&&(!zb(a)||Ab(a)):Bb(a))&&z?(a=!q(a.getBoundingClientRect)||z&&null==a.parentElement?{height:a.offsetHeight,width:a.offsetWidth}:a.getBoundingClientRect(),a=null!=a&&0<a.height&&0<a.width):a=b;return a};var Eb=function(a){a=a.className;return n(a)&&a.match(/\S+/g)||[]},Fb=function(a,b){for(var c=Eb(a),d=Aa(arguments,1),e=0;e<d.length;e++)w(c,d[e])||c.push(d[e]);a.className=c.join(" ")},Hb=function(a,b){var c=Eb(a),d=Aa(arguments,1);c=Gb(c,d);a.className=c.join(" ")},Gb=function(a,b){return va(a,function(a){return!w(b,a)})};var Ib=Object.freeze||function(a){return a};var E=function(){this.ma=this.ma;this.ha=this.ha};E.prototype.ma=!1;E.prototype.la=function(){this.ma||(this.ma=!0,this.o())};var Jb=function(a,b){a.ma?m(void 0)?b.call(void 0):b():(a.ha||(a.ha=[]),a.ha.push(m(void 0)?ka(b,void 0):b))};E.prototype.o=function(){if(this.ha)for(;this.ha.length;)this.ha.shift()()};var Kb=function(a){a&&"function"==typeof a.la&&a.la()};var Lb=!z||9<=Number(gb),Mb=!z||9<=Number(gb),Nb=z&&!D("9"),Ob=function(){if(!l.addEventListener||!Object.defineProperty)return!1;var a=!1,b=Object.defineProperty({},"passive",{get:function(){a=!0}});l.addEventListener("test",aa,b);l.removeEventListener("test",aa,b);return a}();var F=function(a,b){this.type=a;this.currentTarget=this.target=b;this.defaultPrevented=this.ia=!1;this.Rb=!0};F.prototype.stopPropagation=function(){this.ia=!0};F.prototype.preventDefault=function(){this.defaultPrevented=!0;this.Rb=!1};var G=function(a,b){F.call(this,a?a.type:"");this.relatedTarget=this.currentTarget=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=this.offsetY=this.offsetX=0;this.key="";this.charCode=this.keyCode=0;this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.zb=!1;this.pointerId=0;this.pointerType="";this.V=null;if(a){var c=this.type=a.type,d=a.changedTouches?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.currentTarget=b;if(b=a.relatedTarget){if($a){a:{try{Wa(b.nodeName); | |
+f.removeNode=ub;f.contains=vb;f.ba=function(a){var b;(b="A"==a.tagName||"INPUT"==a.tagName||"TEXTAREA"==a.tagName||"SELECT"==a.tagName||"BUTTON"==a.tagName?!a.disabled&&(!zb(a)||Ab(a)):Bb(a))&&z?(a=!q(a.getBoundingClientRect)||z&&null==a.parentElement?{height:a.offsetHeight,width:a.offsetWidth}:a.getBoundingClientRect(),a=null!=a&&0<a.height&&0<a.width):a=b;return a};var Eb=function(a){a=a.className;return n(a)&&a.match(/\S+/g)||[]},Fb=function(a,b){for(var c=Eb(a),d=Aa(arguments,1),e=0;e<d.length;e++)w(c,d[e])||c.push(d[e]);a.className=c.join(" ")},Hb=function(a,b){var c=Eb(a),d=Aa(arguments,1);c=Gb(c,d);a.className=c.join(" ")},Gb=function(a,b){return va(a,function(a){return!w(b,a)})};var Ib=Object.freeze||function(a){return a};var E=function(){this.pa=this.pa;this.ha=this.ha};E.prototype.pa=!1;E.prototype.oa=function(){this.pa||(this.pa=!0,this.o())};var Jb=function(a,b){a.pa?m(void 0)?b.call(void 0):b():(a.ha||(a.ha=[]),a.ha.push(m(void 0)?ka(b,void 0):b))};E.prototype.o=function(){if(this.ha)for(;this.ha.length;)this.ha.shift()()};var Kb=function(a){a&&"function"==typeof a.oa&&a.oa()};var Lb=!z||9<=Number(gb),Mb=!z||9<=Number(gb),Nb=z&&!D("9"),F="PointerEvent"in l,G="MSPointerEvent"in l&&!(!l.navigator||!l.navigator.msPointerEnabled),Ob=function(){if(!l.addEventListener||!Object.defineProperty)return!1;var a=!1,b=Object.defineProperty({},"passive",{get:function(){a=!0}});l.addEventListener("test",aa,b);l.removeEventListener("test",aa,b);return a}();var H=function(a,b){this.type=a;this.currentTarget=this.target=b;this.defaultPrevented=this.ia=!1;this.Yb=!0};H.prototype.stopPropagation=function(){this.ia=!0};H.prototype.preventDefault=function(){this.defaultPrevented=!0;this.Yb=!1};var Pb=function(a){return B?"webkit"+a:Za?"o"+a.toLowerCase():a.toLowerCase()},Qb={sd:"click",vg:"rightclick",Id:"dblclick",ma:"mousedown",na:"mouseup",Fa:"mouseover",Ea:"mouseout",fc:"mousemove",dc:"mouseenter",ec:"mouseleave",la:"mousecancel",Hg:"selectionchange",Ig:"selectstart",Eh:"wheel",Ke:"keypress",Je:"keydown",Le:"keyup",kd:"blur",qe:"focus",Jd:"deactivate",re:"focusin",se:"focusout",pd:"change",sg:"reset",Fg:"select",Wg:"submit",Ge:"input",jg:"propertychange",fe:"dragstart",ae:"drag",ce:"dragenter", | |
+ee:"dragover",de:"dragleave",ge:"drop",be:"dragend",mh:"touchstart",lh:"touchmove",kh:"touchend",jh:"touchcancel",jd:"beforeunload",Bd:"consolemessage",Dd:"contextmenu",Md:"devicechange",Nd:"devicemotion",Od:"deviceorientation",Vd:"DOMContentLoaded",le:"error",De:"help",Ue:"load",cf:"losecapture",Pf:"orientationchange",og:"readystatechange",tg:"resize",Ag:"scroll",rh:"unload",nd:"canplay",od:"canplaythrough",ie:"durationchange",je:"emptied",ke:"ended",Xe:"loadeddata",Ye:"loadedmetadata",Uf:"pause", | |
+Vf:"play",Wf:"playing",mg:"ratechange",Dg:"seeked",Eg:"seeking",Sg:"stalled",Xg:"suspend",gh:"timeupdate",Ch:"volumechange",Dh:"waiting",Qg:"sourceopen",Pg:"sourceended",Og:"sourceclosed",Oc:"abort",th:"update",wh:"updatestart",uh:"updateend",Ae:"hashchange",Rf:"pagehide",Sf:"pageshow",eg:"popstate",Gd:"copy",Tf:"paste",Hd:"cut",cd:"beforecopy",dd:"beforecut",gd:"beforepaste",Mf:"online",Lf:"offline",nf:"message",Ad:"connect",He:"install",Pc:"activate",oe:"fetch",te:"foreignfetch",pf:"messageerror", | |
+Tg:"statechange",vh:"updatefound",Ed:"controllerchange",Wc:Pb("AnimationStart"),Uc:Pb("AnimationEnd"),Vc:Pb("AnimationIteration"),nh:Pb("TransitionEnd"),Yf:"pointerdown",dg:"pointerup",Xf:"pointercancel",ag:"pointermove",cg:"pointerover",bg:"pointerout",Zf:"pointerenter",$f:"pointerleave",ve:"gotpointercapture",df:"lostpointercapture",qf:"MSGestureChange",rf:"MSGestureEnd",sf:"MSGestureHold",tf:"MSGestureStart",uf:"MSGestureTap",vf:"MSGotPointerCapture",wf:"MSInertiaStart",xf:"MSLostPointerCapture", | |
+yf:"MSPointerCancel",zf:"MSPointerDown",Af:"MSPointerEnter",Bf:"MSPointerHover",Cf:"MSPointerLeave",Df:"MSPointerMove",Ef:"MSPointerOut",Ff:"MSPointerOver",Gf:"MSPointerUp",ah:"text",eh:z?"textinput":"textInput",yd:"compositionstart",zd:"compositionupdate",xd:"compositionend",ed:"beforeinput",me:"exit",Ve:"loadabort",We:"loadcommit",Ze:"loadredirect",$e:"loadstart",af:"loadstop",ug:"responsive",Lg:"sizechanged",sh:"unresponsive",Bh:"visibilitychange",Vg:"storage",$d:"DOMSubtreeModified",Wd:"DOMNodeInserted", | |
+Yd:"DOMNodeRemoved",Zd:"DOMNodeRemovedFromDocument",Xd:"DOMNodeInsertedIntoDocument",Td:"DOMAttrModified",Ud:"DOMCharacterDataModified",hd:"beforeprint",Rc:"afterprint",fd:"beforeinstallprompt",Xc:"appinstalled"},Rb={ma:F?"pointerdown":G?"MSPointerDown":"mousedown",na:F?"pointerup":G?"MSPointerUp":"mouseup",la:F?"pointercancel":G?"MSPointerCancel":"mousecancel",fc:F?"pointermove":G?"MSPointerMove":"mousemove",Fa:F?"pointerover":G?"MSPointerOver":"mouseover",Ea:F?"pointerout":G?"MSPointerOut":"mouseout", | |
+dc:F?"pointerenter":G?"MSPointerEnter":"mouseenter",ec:F?"pointerleave":G?"MSPointerLeave":"mouseleave"};var I=function(a,b){H.call(this,a?a.type:"");this.relatedTarget=this.currentTarget=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=this.offsetY=this.offsetX=0;this.key="";this.charCode=this.keyCode=0;this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.Gb=!1;this.pointerId=0;this.pointerType="";this.V=null;if(a){var c=this.type=a.type,d=a.changedTouches?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.currentTarget=b;if(b=a.relatedTarget){if($a){a:{try{Wa(b.nodeName); | |
var e=!0;break a}catch(g){}e=!1}e||(b=null)}}else"mouseover"==c?b=a.fromElement:"mouseout"==c&&(b=a.toElement);this.relatedTarget=b;null===d?(this.offsetX=B||void 0!==a.offsetX?a.offsetX:a.layerX,this.offsetY=B||void 0!==a.offsetY?a.offsetY:a.layerY,this.clientX=void 0!==a.clientX?a.clientX:a.pageX,this.clientY=void 0!==a.clientY?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||0):(this.clientX=void 0!==d.clientX?d.clientX:d.pageX,this.clientY=void 0!==d.clientY?d.clientY:d.pageY, | |
-this.screenX=d.screenX||0,this.screenY=d.screenY||0);this.button=a.button;this.keyCode=a.keyCode||0;this.key=a.key||"";this.charCode=a.charCode||("keypress"==c?a.keyCode:0);this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.zb=C?a.metaKey:a.ctrlKey;this.pointerId=a.pointerId||0;this.pointerType=n(a.pointerType)?a.pointerType:Pb[a.pointerType]||"";this.state=a.state;this.V=a;a.defaultPrevented&&this.preventDefault()}};t(G,F); | |
-var Qb=Ib([1,4,2]),Pb=Ib({2:"touch",3:"pen",4:"mouse"}),Rb=function(a){return Lb?0==a.V.button:"click"==a.type?!0:!!(a.V.button&Qb[0])};G.prototype.stopPropagation=function(){G.g.stopPropagation.call(this);this.V.stopPropagation?this.V.stopPropagation():this.V.cancelBubble=!0};G.prototype.preventDefault=function(){G.g.preventDefault.call(this);var a=this.V;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,Nb)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(b){}};var Sb="closure_listenable_"+(1E6*Math.random()|0),Tb=function(a){return!(!a||!a[Sb])},Ub=0;var Vb=function(a,b,c,d,e){this.listener=a;this.cb=null;this.src=b;this.type=c;this.capture=!!d;this.Xa=e;this.key=++Ub;this.ya=this.Qa=!1},Wb=function(a){a.ya=!0;a.listener=null;a.cb=null;a.src=null;a.Xa=null};var H=function(a){this.src=a;this.w={};this.Ma=0};H.prototype.add=function(a,b,c,d,e){var g=a.toString();a=this.w[g];a||(a=this.w[g]=[],this.Ma++);var h=Xb(a,b,d,e);-1<h?(b=a[h],c||(b.Qa=!1)):(b=new Vb(b,this.src,g,!!d,e),b.Qa=c,a.push(b));return b};H.prototype.remove=function(a,b,c,d){a=a.toString();if(!(a in this.w))return!1;var e=this.w[a];b=Xb(e,b,c,d);return-1<b?(Wb(e[b]),u(null!=e.length),Array.prototype.splice.call(e,b,1),0==e.length&&(delete this.w[a],this.Ma--),!0):!1}; | |
-var Yb=function(a,b){var c=b.type;c in a.w&&xa(a.w[c],b)&&(Wb(b),0==a.w[c].length&&(delete a.w[c],a.Ma--))};H.prototype.Ia=function(a){a=a&&a.toString();var b=0,c;for(c in this.w)if(!a||c==a){for(var d=this.w[c],e=0;e<d.length;e++)++b,Wb(d[e]);delete this.w[c];this.Ma--}};H.prototype.Da=function(a,b,c,d){a=this.w[a.toString()];var e=-1;a&&(e=Xb(a,b,c,d));return-1<e?a[e]:null}; | |
-H.prototype.hasListener=function(a,b){var c=m(a),d=c?a.toString():"",e=m(b);return Qa(this.w,function(a){for(var g=0;g<a.length;++g)if(!(c&&a[g].type!=d||e&&a[g].capture!=b))return!0;return!1})};var Xb=function(a,b,c,d){for(var e=0;e<a.length;++e){var g=a[e];if(!g.ya&&g.listener==b&&g.capture==!!c&&g.Xa==d)return e}return-1};var Zb="closure_lm_"+(1E6*Math.random()|0),$b={},ac=0,I=function(a,b,c,d,e){if(d&&d.once)return bc(a,b,c,d,e);if(p(b)){for(var g=0;g<b.length;g++)I(a,b[g],c,d,e);return null}c=cc(c);return Tb(a)?a.f(b,c,r(d)?!!d.capture:!!d,e):dc(a,b,c,!1,d,e)},dc=function(a,b,c,d,e,g){if(!b)throw Error("Invalid event type");var h=r(e)?!!e.capture:!!e,k=ec(a);k||(a[Zb]=k=new H(a));c=k.add(b,c,d,h,g);if(c.cb)return c;d=fc();c.cb=d;d.src=a;d.listener=c;if(a.addEventListener)Ob||(e=h),void 0===e&&(e=!1),a.addEventListener(b.toString(), | |
-d,e);else if(a.attachEvent)a.attachEvent(gc(b.toString()),d);else if(a.addListener&&a.removeListener)u("change"===b,"MediaQueryList only has a change event"),a.addListener(d);else throw Error("addEventListener and attachEvent are unavailable.");ac++;return c},fc=function(){var a=hc,b=Mb?function(c){return a.call(b.src,b.listener,c)}:function(c){c=a.call(b.src,b.listener,c);if(!c)return c};return b},bc=function(a,b,c,d,e){if(p(b)){for(var g=0;g<b.length;g++)bc(a,b[g],c,d,e);return null}c=cc(c);return Tb(a)? | |
-a.Nb(b,c,r(d)?!!d.capture:!!d,e):dc(a,b,c,!0,d,e)},ic=function(a,b,c,d,e){if(p(b))for(var g=0;g<b.length;g++)ic(a,b[g],c,d,e);else d=r(d)?!!d.capture:!!d,c=cc(c),Tb(a)?a.J(b,c,d,e):a&&(a=ec(a))&&(b=a.Da(b,c,d,e))&&jc(b)},jc=function(a){if("number"!=typeof a&&a&&!a.ya){var b=a.src;if(Tb(b))Yb(b.M,a);else{var c=a.type,d=a.cb;b.removeEventListener?b.removeEventListener(c,d,a.capture):b.detachEvent?b.detachEvent(gc(c),d):b.addListener&&b.removeListener&&b.removeListener(d);ac--;(c=ec(b))?(Yb(c,a),0== | |
-c.Ma&&(c.src=null,b[Zb]=null)):Wb(a)}}},gc=function(a){return a in $b?$b[a]:$b[a]="on"+a},lc=function(a,b,c,d){var e=!0;if(a=ec(a))if(b=a.w[b.toString()])for(b=b.concat(),a=0;a<b.length;a++){var g=b[a];g&&g.capture==c&&!g.ya&&(g=kc(g,d),e=e&&!1!==g)}return e},kc=function(a,b){var c=a.listener,d=a.Xa||a.src;a.Qa&&jc(a);return c.call(d,b)},hc=function(a,b){if(a.ya)return!0;if(!Mb){if(!b)a:{b=["window","event"];for(var c=l,d=0;d<b.length;d++)if(c=c[b[d]],null==c){b=null;break a}b=c}d=b;b=new G(d,this); | |
-c=!0;if(!(0>d.keyCode||void 0!=d.returnValue)){a:{var e=!1;if(0==d.keyCode)try{d.keyCode=-1;break a}catch(h){e=!0}if(e||void 0==d.returnValue)d.returnValue=!0}d=[];for(e=b.currentTarget;e;e=e.parentNode)d.push(e);a=a.type;for(e=d.length-1;!b.ia&&0<=e;e--){b.currentTarget=d[e];var g=lc(d[e],a,!0,b);c=c&&g}for(e=0;!b.ia&&e<d.length;e++)b.currentTarget=d[e],g=lc(d[e],a,!1,b),c=c&&g}return c}return kc(a,new G(b,this))},ec=function(a){a=a[Zb];return a instanceof H?a:null},mc="__closure_events_fn_"+(1E9* | |
-Math.random()>>>0),cc=function(a){u(a,"Listener can not be null.");if(q(a))return a;u(a.handleEvent,"An object listener must have handleEvent method.");a[mc]||(a[mc]=function(b){return a.handleEvent(b)});return a[mc]};var nc,oc={Ec:"activedescendant",Jc:"atomic",Kc:"autocomplete",Mc:"busy",Pc:"checked",Qc:"colindex",Vc:"controls",Xc:"describedby",$c:"disabled",bd:"dropeffect",cd:"expanded",dd:"flowto",fd:"grabbed",kd:"haspopup",md:"hidden",od:"invalid",pd:"label",qd:"labelledby",rd:"level",wd:"live",Gd:"multiline",Hd:"multiselectable",Ld:"orientation",Md:"owns",Nd:"posinset",Pd:"pressed",Td:"readonly",Vd:"relevant",Wd:"required",$d:"rowindex",ce:"selected",ee:"setsize",ge:"sort",ue:"valuemax",ve:"valuemin",we:"valuenow", | |
-xe:"valuetext"};var pc={Fc:"alert",Gc:"alertdialog",Hc:"application",Ic:"article",Lc:"banner",Nc:"button",Oc:"checkbox",Rc:"columnheader",Sc:"combobox",Tc:"complementary",Uc:"contentinfo",Wc:"definition",Yc:"dialog",Zc:"directory",ad:"document",ed:"form",gd:"grid",hd:"gridcell",jd:"group",ld:"heading",nd:"img",sd:"link",td:"list",ud:"listbox",vd:"listitem",xd:"log",yd:"main",zd:"marquee",Ad:"math",Bd:"menu",Cd:"menubar",Dd:"menuitem",Ed:"menuitemcheckbox",Fd:"menuitemradio",Id:"navigation",Jd:"note",Kd:"option", | |
-Od:"presentation",Qd:"progressbar",Rd:"radio",Sd:"radiogroup",Ud:"region",Xd:"row",Yd:"rowgroup",Zd:"rowheader",ae:"scrollbar",be:"search",de:"separator",fe:"slider",he:"spinbutton",ie:"status",je:"tab",ke:"tablist",le:"tabpanel",me:"textbox",ne:"textinfo",oe:"timer",pe:"toolbar",qe:"tooltip",re:"tree",se:"treegrid",te:"treeitem"};var qc=function(a,b){b?(u(Ra(pc,b),"No such ARIA role "+b),a.setAttribute("role",b)):a.removeAttribute("role")},sc=function(a,b,c){p(c)&&(c=c.join(" "));var d=rc(b);""===c||void 0==c?(nc||(nc={atomic:!1,autocomplete:"none",dropeffect:"none",haspopup:!1,live:"off",multiline:!1,multiselectable:!1,orientation:"vertical",readonly:!1,relevant:"additions text",required:!1,sort:"none",busy:!1,disabled:!1,hidden:!1,invalid:"false"}),c=nc,b in c?a.setAttribute(d,c[b]):a.removeAttribute(d)):a.setAttribute(d, | |
-c)},rc=function(a){u(a,"ARIA attribute cannot be empty.");u(Ra(oc,a),"No such ARIA attribute "+a);return"aria-"+a};var J=function(a){if(a.classList)return a.classList;a=a.className;return n(a)&&a.match(/\S+/g)||[]},tc=function(a,b){return a.classList?a.classList.contains(b):w(J(a),b)},uc=function(a,b){a.classList?a.classList.add(b):tc(a,b)||(a.className+=0<a.className.length?" "+b:b)},vc=function(a,b){if(a.classList)v(b,function(b){uc(a,b)});else{var c={};v(J(a),function(a){c[a]=!0});v(b,function(a){c[a]=!0});a.className="";for(var d in c)a.className+=0<a.className.length?" "+d:d}},wc=function(a,b){a.classList? | |
-a.classList.remove(b):tc(a,b)&&(a.className=va(J(a),function(a){return a!=b}).join(" "))},xc=function(a,b){a.classList?v(b,function(b){wc(a,b)}):a.className=va(J(a),function(a){return!w(b,a)}).join(" ")};var K=function(a){E.call(this);this.ta=a;this.va={}};t(K,E);var yc=[];K.prototype.f=function(a,b,c,d){p(b)||(b&&(yc[0]=b.toString()),b=yc);for(var e=0;e<b.length;e++){var g=I(a,b[e],c||this.handleEvent,d||!1,this.ta||this);if(!g)break;this.va[g.key]=g}return this};K.prototype.Nb=function(a,b,c,d){return zc(this,a,b,c,d)};var zc=function(a,b,c,d,e,g){if(p(c))for(var h=0;h<c.length;h++)zc(a,b,c[h],d,e,g);else{b=bc(b,c,d||a.handleEvent,e,g||a.ta||a);if(!b)return a;a.va[b.key]=b}return a}; | |
-K.prototype.J=function(a,b,c,d,e){if(p(b))for(var g=0;g<b.length;g++)this.J(a,b[g],c,d,e);else c=c||this.handleEvent,d=r(d)?!!d.capture:!!d,e=e||this.ta||this,c=cc(c),d=!!d,b=Tb(a)?a.Da(b,c,d,e):a?(a=ec(a))?a.Da(b,c,d,e):null:null,b&&(jc(b),delete this.va[b.key]);return this};K.prototype.Ia=function(){Pa(this.va,function(a,b){this.va.hasOwnProperty(b)&&jc(a)},this);this.va={}};K.prototype.o=function(){K.g.o.call(this);this.Ia()}; | |
-K.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented");};var L=function(){E.call(this);this.M=new H(this);this.Xb=this;this.bb=null};t(L,E);L.prototype[Sb]=!0;f=L.prototype;f.Db=function(a){this.bb=a};f.addEventListener=function(a,b,c,d){I(this,a,b,c,d)};f.removeEventListener=function(a,b,c,d){ic(this,a,b,c,d)}; | |
-f.dispatchEvent=function(a){Ac(this);var b=this.bb;if(b){var c=[];for(var d=1;b;b=b.bb)c.push(b),u(1E3>++d,"infinite loop")}b=this.Xb;d=a.type||a;if(n(a))a=new F(a,b);else if(a instanceof F)a.target=a.target||b;else{var e=a;a=new F(d,b);Va(a,e)}e=!0;if(c)for(var g=c.length-1;!a.ia&&0<=g;g--){var h=a.currentTarget=c[g];e=Bc(h,d,!0,a)&&e}a.ia||(h=a.currentTarget=b,e=Bc(h,d,!0,a)&&e,a.ia||(e=Bc(h,d,!1,a)&&e));if(c)for(g=0;!a.ia&&g<c.length;g++)h=a.currentTarget=c[g],e=Bc(h,d,!1,a)&&e;return e}; | |
-f.o=function(){L.g.o.call(this);this.M&&this.M.Ia(void 0);this.bb=null};f.f=function(a,b,c,d){Ac(this);return this.M.add(String(a),b,!1,c,d)};f.Nb=function(a,b,c,d){return this.M.add(String(a),b,!0,c,d)};f.J=function(a,b,c,d){return this.M.remove(String(a),b,c,d)};var Bc=function(a,b,c,d){b=a.M.w[String(b)];if(!b)return!0;b=b.concat();for(var e=!0,g=0;g<b.length;++g){var h=b[g];if(h&&!h.ya&&h.capture==c){var k=h.listener,Na=h.Xa||h.src;h.Qa&&Yb(a.M,h);e=!1!==k.call(Na,d)&&e}}return e&&0!=d.Rb}; | |
-L.prototype.Da=function(a,b,c,d){return this.M.Da(String(a),b,c,d)};L.prototype.hasListener=function(a,b){return this.M.hasListener(m(a)?String(a):void 0,b)};var Ac=function(a){u(a.M,"Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")};var Ec=function(a,b,c,d,e,g){if(!(z||A||B&&D("525")))return!0;if(C&&e)return Cc(a);if(e&&!d)return!1;"number"==typeof b&&(b=Dc(b));e=17==b||18==b||C&&91==b;if((!c||C)&&e||C&&16==b&&(d||g))return!1;if((B||A)&&d&&c)switch(a){case 220:case 219:case 221:case 192:case 186:case 189:case 187:case 188:case 190:case 191:case 192:case 222:return!1}if(z&&d&&b==a)return!1;switch(a){case 13:return!0;case 27:return!(B||A)}return Cc(a)},Cc=function(a){if(48<=a&&57>=a||96<=a&&106>=a||65<=a&&90>=a||(B||A)&&0==a)return!0; | |
-switch(a){case 32:case 43:case 63:case 64:case 107:case 109:case 110:case 111:case 186:case 59:case 189:case 187:case 61:case 188:case 190:case 191:case 192:case 222:case 219:case 220:case 221:return!0;default:return!1}},Dc=function(a){if($a)a=Fc(a);else if(C&&B)switch(a){case 93:a=91}return a},Fc=function(a){switch(a){case 61:return 187;case 59:return 186;case 173:return 189;case 224:return 91;case 0:return 224;default:return a}};var M=function(a,b){L.call(this);a&&Gc(this,a,b)};t(M,L);f=M.prototype;f.c=null;f.Ya=null;f.vb=null;f.Za=null;f.F=-1;f.ca=-1;f.ib=!1; | |
-var Hc={3:13,12:144,63232:38,63233:40,63234:37,63235:39,63236:112,63237:113,63238:114,63239:115,63240:116,63241:117,63242:118,63243:119,63244:120,63245:121,63246:122,63247:123,63248:44,63272:46,63273:36,63275:35,63276:33,63277:34,63289:144,63302:45},Ic={Up:38,Down:40,Left:37,Right:39,Enter:13,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,"U+007F":46,Home:36,End:35,PageUp:33,PageDown:34,Insert:45},Jc=z||A||B&&D("525"),Kc=C&&$a; | |
-M.prototype.mc=function(a){if(B||A)if(17==this.F&&!a.ctrlKey||18==this.F&&!a.altKey||C&&91==this.F&&!a.metaKey)this.ca=this.F=-1;-1==this.F&&(a.ctrlKey&&17!=a.keyCode?this.F=17:a.altKey&&18!=a.keyCode?this.F=18:a.metaKey&&91!=a.keyCode&&(this.F=91));Jc&&!Ec(a.keyCode,this.F,a.shiftKey,a.ctrlKey,a.altKey,a.metaKey)?this.handleEvent(a):(this.ca=Dc(a.keyCode),Kc&&(this.ib=a.altKey))};M.prototype.nc=function(a){this.ca=this.F=-1;this.ib=a.altKey}; | |
-M.prototype.handleEvent=function(a){var b=a.V,c=b.altKey;if(z&&"keypress"==a.type){var d=this.ca;var e=13!=d&&27!=d?b.keyCode:0}else(B||A)&&"keypress"==a.type?(d=this.ca,e=0<=b.charCode&&63232>b.charCode&&Cc(d)?b.charCode:0):Za&&!B?(d=this.ca,e=Cc(d)?b.keyCode:0):(d=b.keyCode||this.ca,e=b.charCode||0,Kc&&(c=this.ib),C&&63==e&&224==d&&(d=191));var g=d=Dc(d);d?63232<=d&&d in Hc?g=Hc[d]:25==d&&a.shiftKey&&(g=9):b.keyIdentifier&&b.keyIdentifier in Ic&&(g=Ic[b.keyIdentifier]);a=g==this.F;this.F=g;b=new Lc(g, | |
-e,a,b);b.altKey=c;this.dispatchEvent(b)};M.prototype.a=function(){return this.c};var Gc=function(a,b,c){a.Za&&a.detach();a.c=b;a.Ya=I(a.c,"keypress",a,c);a.vb=I(a.c,"keydown",a.mc,c,a);a.Za=I(a.c,"keyup",a.nc,c,a)};M.prototype.detach=function(){this.Ya&&(jc(this.Ya),jc(this.vb),jc(this.Za),this.Za=this.vb=this.Ya=null);this.c=null;this.ca=this.F=-1};M.prototype.o=function(){M.g.o.call(this);this.detach()}; | |
-var Lc=function(a,b,c,d){G.call(this,d);this.type="key";this.keyCode=a;this.charCode=b;this.repeat=c};t(Lc,G);var Mc=function(a,b){a.style.display=b?"":"none"},Oc=$a?"MozUserSelect":B||A?"WebkitUserSelect":null,Pc=function(a,b,c){c=c?null:a.getElementsByTagName("*");if(Oc){if(b=b?"none":"",a.style&&(a.style[Oc]=b),c){a=0;for(var d;d=c[a];a++)d.style&&(d.style[Oc]=b)}}else if(z||Za)if(b=b?"on":"",a.setAttribute("unselectable",b),c)for(a=0;d=c[a];a++)d.setAttribute("unselectable",b)};var Qc=function(){};ba(Qc);Qc.prototype.xc=0;var N=function(a){L.call(this);this.L=a||mb();this.eb=Rc;this.ua=null;this.j=!1;this.c=null;this.$=void 0;this.K=this.B=this.C=null;this.Vb=!1};t(N,L);N.prototype.wc=Qc.qa(); | |
-var Rc=null,Sc=function(a,b){switch(a){case 1:return b?"disable":"enable";case 2:return b?"highlight":"unhighlight";case 4:return b?"activate":"deactivate";case 8:return b?"select":"unselect";case 16:return b?"check":"uncheck";case 32:return b?"focus":"blur";case 64:return b?"open":"close"}throw Error("Invalid component state");},Tc=function(a){return a.ua||(a.ua=":"+(a.wc.xc++).toString(36))},Uc=function(a,b){if(a.C&&a.C.K){var c=a.C.K,d=a.ua;d in c&&delete c[d];Sa(a.C.K,b,a)}a.ua=b}; | |
-N.prototype.a=function(){return this.c};var Vc=function(a){a=a.c;u(a,"Can not call getElementStrict before rendering/decorating.");return a},Wc=function(a){a.$||(a.$=new K(a));return u(a.$)},Yc=function(a,b){if(a==b)throw Error("Unable to set parent component");if(b&&a.C&&a.ua&&Xc(a.C,a.ua)&&a.C!=b)throw Error("Unable to set parent component");a.C=b;N.g.Db.call(a,b)};f=N.prototype;f.getParent=function(){return this.C}; | |
-f.Db=function(a){if(this.C&&this.C!=a)throw Error("Method not supported");N.g.Db.call(this,a)};f.nb=function(){return this.L};f.D=function(){this.c=this.L.createElement("DIV")};f.X=function(a){if(this.j)throw Error("Component already rendered");if(a&&this.ea(a)){this.Vb=!0;var b=lb(a);this.L&&this.L.Y==b||(this.L=mb(a));this.kb(a);this.S()}else throw Error("Invalid element to decorate");};f.ea=function(){return!0};f.kb=function(a){this.c=a}; | |
-f.S=function(){this.j=!0;Zc(this,function(a){!a.j&&a.a()&&a.S()})};f.ga=function(){Zc(this,function(a){a.j&&a.ga()});this.$&&this.$.Ia();this.j=!1};f.o=function(){this.j&&this.ga();this.$&&(this.$.la(),delete this.$);Zc(this,function(a){a.la()});!this.Vb&&this.c&&ub(this.c);this.C=this.c=this.K=this.B=null;N.g.o.call(this)};f.Oa=function(a,b){this.hb(a,$c(this),b)}; | |
-f.hb=function(a,b,c){u(!!a,"Provided element must not be null.");if(a.j&&(c||!this.j))throw Error("Component already rendered");if(0>b||b>$c(this))throw Error("Child component index out of bounds");this.K&&this.B||(this.K={},this.B=[]);if(a.getParent()==this){var d=Tc(a);this.K[d]=a;xa(this.B,a)}else Sa(this.K,Tc(a),a);Yc(a,this);Ba(this.B,b,0,a);if(a.j&&this.j&&a.getParent()==this)c=this.O(),b=c.childNodes[b]||null,b!=a.a()&&c.insertBefore(a.a(),b);else if(c){this.c||this.D();c=O(this,b+1);b=this.O(); | |
-c=c?c.c:null;if(a.j)throw Error("Component already rendered");a.c||a.D();b?b.insertBefore(a.c,c||null):a.L.Y.body.appendChild(a.c);a.C&&!a.C.j||a.S()}else this.j&&!a.j&&a.c&&a.c.parentNode&&1==a.c.parentNode.nodeType&&a.S()};f.O=function(){return this.c}; | |
-var ad=function(a){if(null==a.eb){var b=a.j?a.c:a.L.Y.body;a:{var c=lb(b);if(c.defaultView&&c.defaultView.getComputedStyle&&(c=c.defaultView.getComputedStyle(b,null))){c=c.direction||c.getPropertyValue("direction")||"";break a}c=""}a.eb="rtl"==(c||(b.currentStyle?b.currentStyle.direction:null)||b.style&&b.style.direction)}return a.eb};N.prototype.Ka=function(a){if(this.j)throw Error("Component already rendered");this.eb=a}; | |
-var $c=function(a){return a.B?a.B.length:0},Xc=function(a,b){a.K&&b?(a=a.K,b=(null!==a&&b in a?a[b]:void 0)||null):b=null;return b},O=function(a,b){return a.B?a.B[b]||null:null},Zc=function(a,b,c){a.B&&v(a.B,b,c)},bd=function(a,b){return a.B&&b?ua(a.B,b):-1};N.prototype.removeChild=function(a,b){if(a){var c=n(a)?a:Tc(a);a=Xc(this,c);if(c&&a){var d=this.K;c in d&&delete d[c];xa(this.B,a);b&&(a.ga(),a.c&&ub(a.c));Yc(a,null)}}if(!a)throw Error("Child is not in parent component");return a};var dd=function(a,b){if(!a)throw Error("Invalid class name "+a);if(!q(b))throw Error("Invalid decorator function "+b);cd[a]=b},ed={},cd={};var P=function(a){this.Ib=a};ba(P);P.prototype.pa=function(){return this.Ib};var fd=function(a,b){a&&(a.tabIndex=b?0:-1)};f=P.prototype;f.D=function(a){return a.nb().D("DIV",this.Ca(a).join(" "))};f.O=function(a){return a};f.ea=function(a){return"DIV"==a.tagName};f.X=function(a,b){b.id&&Uc(a,b.id);var c=this.H(),d=!1,e=J(b);e&&v(e,function(b){b==c?d=!0:b&&this.Eb(a,b,c)},this);d||uc(b,c);gd(a,this.O(b));return b}; | |
-f.Eb=function(a,b,c){b==c+"-disabled"?a.za(!1):b==c+"-horizontal"?a.setOrientation("horizontal"):b==c+"-vertical"&&a.setOrientation("vertical")};var gd=function(a,b){if(b)for(var c=b.firstChild,d;c&&c.parentNode==b;){d=c.nextSibling;if(1==c.nodeType){a:{var e=c;u(e);e=J(e);for(var g=0,h=e.length;g<h;g++){var k=e[g];if(k=k in cd?cd[k]():null){e=k;break a}}e=null}e&&(e.c=c,a.isEnabled()||e.za(!1),a.Oa(e),e.X(c))}else c.nodeValue&&""!=Ca(c.nodeValue)||b.removeChild(c);c=d}}; | |
-P.prototype.tb=function(a){a=a.a();u(a,"The container DOM element cannot be null.");Pc(a,!0,$a);z&&(a.hideFocus=!0);var b=this.pa();b&&qc(a,b)};P.prototype.u=function(a){return a.a()};P.prototype.H=function(){return"goog-container"};P.prototype.Ca=function(a){var b=this.H(),c=[b,"horizontal"==a.da?b+"-horizontal":b+"-vertical"];a.isEnabled()||c.push(b+"-disabled");return c};var R=function(){},hd;ba(R);var id={button:"pressed",checkbox:"checked",menuitem:"selected",menuitemcheckbox:"checked",menuitemradio:"checked",radio:"checked",tab:"selected",treeitem:"selected"};f=R.prototype;f.pa=function(){};f.D=function(a){return a.nb().D("DIV",this.Ca(a).join(" "),a.Aa)};f.O=function(a){return a};f.Ba=function(a,b,c){if(a=a.a?a.a():a){var d=[b];z&&!D("7")&&(d=jd(J(a),b),d.push(b));(c?vc:xc)(a,d)}};f.ea=function(){return!0}; | |
-f.X=function(a,b){b.id&&Uc(a,b.id);var c=this.O(b);c&&c.firstChild?kd(a,c.firstChild.nextSibling?za(c.childNodes):c.firstChild):a.Aa=null;var d=0,e=this.H(),g=this.H(),h=!1,k=!1,Na=!1,Q=za(J(b));v(Q,function(a){h||a!=e?k||a!=g?d|=ld(this,a):k=!0:(h=!0,g==e&&(k=!0));1==ld(this,a)&&(ra(c),Bb(c)&&Cb(c,!1))},this);a.m=d;h||(Q.push(e),g==e&&(k=!0));k||Q.push(g);(a=a.N)&&Q.push.apply(Q,a);if(z&&!D("7")){var Nc=jd(Q);0<Nc.length&&(Q.push.apply(Q,Nc),Na=!0)}if(!h||!k||a||Na)b.className=Q.join(" ");return b}; | |
-f.tb=function(a){ad(a)&&this.Ka(a.a(),!0);a.isEnabled()&&this.Ja(a,a.i)};var md=function(a,b,c){if(a=c||a.pa())u(b,"The element passed as a first parameter cannot be null."),c=b.getAttribute("role")||null,a!=c&&qc(b,a)};f=R.prototype;f.Ab=function(a,b){sc(a,"label",b)};f.fb=function(a,b){Pc(a,!b,!z&&!Za)};f.Ka=function(a,b){this.Ba(a,this.H()+"-rtl",b)};f.ba=function(a){var b;return a.A&32&&(b=a.u())?Bb(b):!1}; | |
-f.Ja=function(a,b){var c;if(a.A&32&&(c=a.u())){if(!b&&a.m&32){try{c.blur()}catch(d){}a.m&32&&a.Ea(null)}Bb(c)!=b&&Cb(c,b)}};f.La=function(a,b){Mc(a,b);a&&sc(a,"hidden",!b)};f.I=function(a,b,c){var d=a.a();if(d){var e=nd(this,b);e&&this.Ba(a,e,c);od(d,b,c)}}; | |
-var od=function(a,b,c){hd||(hd={1:"disabled",8:"selected",16:"checked",64:"expanded"});u(a,"The element passed as a first parameter cannot be null.");b=hd[b];var d=a.getAttribute("role")||null;d&&(d=id[d]||b,b="checked"==b||"selected"==b?d:b);b&&sc(a,b,c)};R.prototype.u=function(a){return a.a()};R.prototype.H=function(){return"goog-control"}; | |
-R.prototype.Ca=function(a){var b=this.H(),c=[b],d=this.H();d!=b&&c.push(d);b=a.getState();for(d=[];b;){var e=b&-b;d.push(nd(this,e));b&=~e}c.push.apply(c,d);(a=a.N)&&c.push.apply(c,a);z&&!D("7")&&c.push.apply(c,jd(c));return c}; | |
-var jd=function(a,b){var c=[];b&&(a=ya(a,[b]));v([],function(d){!wa(d,la(w,a))||b&&!w(d,b)||c.push(d.join("_"))});return c},nd=function(a,b){a.Sa||pd(a);return a.Sa[b]},ld=function(a,b){a.Sb||(a.Sa||pd(a),a.Sb=Ta(a.Sa));a=parseInt(a.Sb[b],10);return isNaN(a)?0:a},pd=function(a){var b=a.H(),c=!x(b.replace(/\xa0|\s/g," ")," ");u(c,"ControlRenderer has an invalid css class: '"+b+"'");a.Sa={1:b+"-disabled",2:b+"-hover",4:b+"-active",8:b+"-selected",16:b+"-checked",32:b+"-focused",64:b+"-open"}};var S=function(a,b,c){N.call(this,c);if(!b){b=this.constructor;for(var d;b;){d=ha(b);if(d=ed[d])break;b=b.g?b.g.constructor:null}b=d?q(d.qa)?d.qa():new d:null}this.b=b;this.Aa=m(a)?a:null;this.Hb=null};t(S,N);f=S.prototype;f.Aa=null;f.m=0;f.A=39;f.ac=255;f.ka=0;f.i=!0;f.N=null;f.sa=!0;f.Pa=!1;f.Qb=null;f.Bb=function(a){this.j&&a!=this.sa&&qd(this,a);this.sa=a};f.u=function(){return this.b.u(this)};f.Va=function(){return this.v||(this.v=new M)}; | |
-f.Ba=function(a,b){b?a&&(this.N?w(this.N,a)||this.N.push(a):this.N=[a],this.b.Ba(this,a,!0)):a&&this.N&&xa(this.N,a)&&(0==this.N.length&&(this.N=null),this.b.Ba(this,a,!1))};f.D=function(){var a=this.b.D(this);this.c=a;md(this.b,a,this.Qb);this.Pa||this.b.fb(a,!1);this.i||this.b.La(a,!1)};f.Ab=function(a){this.Hb=a;var b=this.a();b&&this.b.Ab(b,a)};f.O=function(){return this.b.O(this.a())};f.ea=function(a){return this.b.ea(a)}; | |
-f.kb=function(a){this.c=a=this.b.X(this,a);md(this.b,a,this.Qb);this.Pa||this.b.fb(a,!1);this.i="none"!=a.style.display}; | |
-f.S=function(){S.g.S.call(this);var a=this.b,b=Vc(this);u(this);u(b);var c=this.Hb;null!=c&&a.Ab(b,c);this.i||sc(b,"hidden",!this.i);this.isEnabled()||od(b,1,!this.isEnabled());this.A&8&&od(b,8,!!(this.m&8));this.A&16&&od(b,16,!!(this.m&16));this.A&64&&od(b,64,!!(this.m&64));this.b.tb(this);this.A&-2&&(this.sa&&qd(this,!0),this.A&32&&(a=this.u()))&&(b=this.Va(),Gc(b,a),Wc(this).f(b,"key",this.aa).f(a,"focus",this.Ga).f(a,"blur",this.Ea))}; | |
-var qd=function(a,b){var c=Wc(a),d=a.a();b?(c.f(d,"mouseover",a.rb).f(d,"mousedown",a.ra).f(d,"mouseup",a.Wa).f(d,"mouseout",a.qb),a.Fa!=aa&&c.f(d,"contextmenu",a.Fa),z&&(D(9)||c.f(d,"dblclick",a.Kb),a.Ha||(a.Ha=new rd(a),Jb(a,la(Kb,a.Ha))))):(c.J(d,"mouseover",a.rb).J(d,"mousedown",a.ra).J(d,"mouseup",a.Wa).J(d,"mouseout",a.qb),a.Fa!=aa&&c.J(d,"contextmenu",a.Fa),z&&(D(9)||c.J(d,"dblclick",a.Kb),Kb(a.Ha),a.Ha=null))}; | |
-S.prototype.ga=function(){S.g.ga.call(this);this.v&&this.v.detach();this.i&&this.isEnabled()&&this.b.Ja(this,!1)};S.prototype.o=function(){S.g.o.call(this);this.v&&(this.v.la(),delete this.v);delete this.b;this.Ha=this.N=this.Aa=null};var kd=function(a,b){a.Aa=b};f=S.prototype;f.Ka=function(a){S.g.Ka.call(this,a);var b=this.a();b&&this.b.Ka(b,a)};f.fb=function(a){this.Pa=a;var b=this.a();b&&this.b.fb(b,a)}; | |
-f.La=function(a,b){if(b||this.i!=a&&this.dispatchEvent(a?"show":"hide"))(b=this.a())&&this.b.La(b,a),this.isEnabled()&&this.b.Ja(this,a),this.i=a};f.isEnabled=function(){return!(this.m&1)};f.za=function(a){var b=this.getParent();b&&"function"==typeof b.isEnabled&&!b.isEnabled()||!T(this,1,!a)||(a||(this.setActive(!1),this.R(!1)),this.i&&this.b.Ja(this,a),this.I(1,!a,!0))};f.R=function(a){T(this,2,a)&&this.I(2,a)};f.setActive=function(a){T(this,4,a)&&this.I(4,a)}; | |
-var sd=function(a,b){T(a,8,b)&&a.I(8,b)},td=function(a,b){T(a,64,b)&&a.I(64,b)};S.prototype.getState=function(){return this.m};S.prototype.I=function(a,b,c){c||1!=a?this.A&a&&b!=!!(this.m&a)&&(this.b.I(this,a,b),this.m=b?this.m|a:this.m&~a):this.za(!b)}; | |
-var ud=function(a,b,c){if(a.j&&a.m&b&&!c)throw Error("Component already rendered");!c&&a.m&b&&a.I(b,!1);a.A=c?a.A|b:a.A&~b},U=function(a,b){return!!(a.ac&b)&&!!(a.A&b)},T=function(a,b,c){return!!(a.A&b)&&!!(a.m&b)!=c&&(!(a.ka&b)||a.dispatchEvent(Sc(b,c)))&&!a.ma};f=S.prototype;f.rb=function(a){(!a.relatedTarget||!vb(this.a(),a.relatedTarget))&&this.dispatchEvent("enter")&&this.isEnabled()&&U(this,2)&&this.R(!0)}; | |
-f.qb=function(a){a.relatedTarget&&vb(this.a(),a.relatedTarget)||!this.dispatchEvent("leave")||(U(this,4)&&this.setActive(!1),U(this,2)&&this.R(!1))};f.Fa=aa;f.ra=function(a){this.isEnabled()&&(U(this,2)&&this.R(!0),!Rb(a)||B&&C&&a.ctrlKey||(U(this,4)&&this.setActive(!0),this.b&&this.b.ba(this)&&this.u().focus()));this.Pa||!Rb(a)||B&&C&&a.ctrlKey||a.preventDefault()};f.Wa=function(a){this.isEnabled()&&(U(this,2)&&this.R(!0),this.m&4&&vd(this,a)&&U(this,4)&&this.setActive(!1))}; | |
-f.Kb=function(a){this.isEnabled()&&vd(this,a)};var vd=function(a,b){if(U(a,16)){var c=!(a.m&16);T(a,16,c)&&a.I(16,c)}U(a,8)&&sd(a,!0);U(a,64)&&td(a,!(a.m&64));c=new F("action",a);b&&(c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey,c.zb=b.zb);return a.dispatchEvent(c)};S.prototype.Ga=function(){U(this,32)&&T(this,32,!0)&&this.I(32,!0)};S.prototype.Ea=function(){U(this,4)&&this.setActive(!1);U(this,32)&&T(this,32,!1)&&this.I(32,!1)}; | |
-S.prototype.aa=function(a){return this.i&&this.isEnabled()&&this.pb(a)?(a.preventDefault(),a.stopPropagation(),!0):!1};S.prototype.pb=function(a){return 13==a.keyCode&&vd(this,a)};if(!q(S))throw Error("Invalid component class "+S);if(!q(R))throw Error("Invalid renderer class "+R);var wd=ha(S);ed[wd]=R;dd("goog-control",function(){return new S(null)}); | |
-var rd=function(a){E.call(this);this.Ua=a;this.Ta=!1;this.ta=new K(this);Jb(this,la(Kb,this.ta));a=Vc(this.Ua);this.ta.f(a,"mousedown",this.oc).f(a,"mouseup",this.pc).f(a,"click",this.hc)};t(rd,E);var xd=!z||9<=Number(gb);rd.prototype.oc=function(){this.Ta=!1};rd.prototype.pc=function(){this.Ta=!0}; | |
-var yd=function(a,b){if(!xd)return a.button=0,a.type=b,a;var c=document.createEvent("MouseEvents");c.initMouseEvent(b,a.bubbles,a.cancelable,a.view||null,a.detail,a.screenX,a.screenY,a.clientX,a.clientY,a.ctrlKey,a.altKey,a.shiftKey,a.metaKey,0,a.relatedTarget||null);return c};rd.prototype.hc=function(a){if(this.Ta)this.Ta=!1;else{var b=a.V,c=b.button,d=b.type,e=yd(b,"mousedown");this.Ua.ra(new G(e,a.currentTarget));e=yd(b,"mouseup");this.Ua.Wa(new G(e,a.currentTarget));xd||(b.button=c,b.type=d)}}; | |
-rd.prototype.o=function(){this.Ua=null;rd.g.o.call(this)};var V=function(a,b,c){N.call(this,c);this.b=b||P.qa();this.da=a||"vertical"};t(V,N);f=V.prototype;f.wb=null;f.v=null;f.b=null;f.da=null;f.i=!0;f.fa=!0;f.mb=!0;f.h=-1;f.s=null;f.xa=!1;f.Zb=!1;f.Ac=!0;f.T=null;f.u=function(){return this.wb||this.b.u(this)};f.Va=function(){return this.v||(this.v=new M(this.u()))};f.D=function(){this.c=this.b.D(this)};f.O=function(){return this.b.O(this.a())};f.ea=function(a){return this.b.ea(a)}; | |
-f.kb=function(a){this.c=this.b.X(this,a);"none"==a.style.display&&(this.i=!1)};f.S=function(){V.g.S.call(this);Zc(this,function(a){a.j&&zd(this,a)},this);var a=this.a();this.b.tb(this);this.La(this.i,!0);Wc(this).f(this,"enter",this.kc).f(this,"highlight",this.lc).f(this,"unhighlight",this.vc).f(this,"open",this.qc).f(this,"close",this.ic).f(a,"mousedown",this.ra).f(lb(a),"mouseup",this.jc).f(a,["mousedown","mouseup","mouseover","mouseout","contextmenu"],this.gc);this.ba()&&Ad(this,!0)}; | |
-var Ad=function(a,b){var c=Wc(a),d=a.u();b?c.f(d,"focus",a.Ga).f(d,"blur",a.Ea).f(a.Va(),"key",a.aa):c.J(d,"focus",a.Ga).J(d,"blur",a.Ea).J(a.Va(),"key",a.aa)};f=V.prototype;f.ga=function(){Bd(this,-1);this.s&&td(this.s,!1);this.xa=!1;V.g.ga.call(this)};f.o=function(){V.g.o.call(this);this.v&&(this.v.la(),this.v=null);this.b=this.s=this.T=this.wb=null};f.kc=function(){return!0}; | |
-f.lc=function(a){var b=bd(this,a.target);if(-1<b&&b!=this.h){var c=O(this,this.h);c&&c.R(!1);this.h=b;c=O(this,this.h);this.xa&&c.setActive(!0);this.Ac&&this.s&&c!=this.s&&(c.A&64?td(c,!0):td(this.s,!1))}b=this.a();u(b,"The DOM element for the container cannot be null.");null!=a.target.a()&&sc(b,"activedescendant",a.target.a().id)};f.vc=function(a){a.target==O(this,this.h)&&(this.h=-1);a=this.a();u(a,"The DOM element for the container cannot be null.");a.removeAttribute(rc("activedescendant"))}; | |
-f.qc=function(a){(a=a.target)&&a!=this.s&&a.getParent()==this&&(this.s&&td(this.s,!1),this.s=a)};f.ic=function(a){a.target==this.s&&(this.s=null);var b=this.a(),c=a.target.a();b&&a.target.m&2&&c&&(a="",c&&(a=c.id,u(a,"The active element should have an id.")),sc(b,"activedescendant",a))};f.ra=function(a){this.fa&&(this.xa=!0);var b=this.u();b&&Bb(b)?b.focus():a.preventDefault()};f.jc=function(){this.xa=!1}; | |
-f.gc=function(a){a:{var b=a.target;if(this.T)for(var c=this.a();b&&b!==c;){var d=b.id;if(d in this.T){b=this.T[d];break a}b=b.parentNode}b=null}if(b)switch(a.type){case "mousedown":b.ra(a);break;case "mouseup":b.Wa(a);break;case "mouseover":b.rb(a);break;case "mouseout":b.qb(a);break;case "contextmenu":b.Fa(a)}};f.Ga=function(){};f.Ea=function(){Bd(this,-1);this.xa=!1;this.s&&td(this.s,!1)}; | |
-f.aa=function(a){return this.isEnabled()&&this.i&&(0!=$c(this)||this.wb)&&this.pb(a)?(a.preventDefault(),a.stopPropagation(),!0):!1}; | |
-f.pb=function(a){var b=O(this,this.h);if(b&&"function"==typeof b.aa&&b.aa(a)||this.s&&this.s!=b&&"function"==typeof this.s.aa&&this.s.aa(a))return!0;if(a.shiftKey||a.ctrlKey||a.metaKey||a.altKey)return!1;switch(a.keyCode){case 27:if(this.ba())this.u().blur();else return!1;break;case 36:Cd(this);break;case 35:Dd(this);break;case 38:if("vertical"==this.da)Ed(this);else return!1;break;case 37:if("horizontal"==this.da)ad(this)?Fd(this):Ed(this);else return!1;break;case 40:if("vertical"==this.da)Fd(this); | |
-else return!1;break;case 39:if("horizontal"==this.da)ad(this)?Ed(this):Fd(this);else return!1;break;default:return!1}return!0};var zd=function(a,b){var c=b.a();c=c.id||(c.id=Tc(b));a.T||(a.T={});a.T[c]=b};f=V.prototype;f.Oa=function(a,b){ta(a,S,"The child of a container must be a control");V.g.Oa.call(this,a,b)}; | |
-f.hb=function(a,b,c){ta(a,S);a.ka|=2;a.ka|=64;!this.ba()&&this.Zb||ud(a,32,!1);a.Bb(!1);var d=a.getParent()==this?bd(this,a):-1;V.g.hb.call(this,a,b,c);a.j&&this.j&&zd(this,a);a=d;-1==a&&(a=$c(this));a==this.h?this.h=Math.min($c(this)-1,b):a>this.h&&b<=this.h?this.h++:a<this.h&&b>this.h&&this.h--}; | |
-f.removeChild=function(a,b){a=n(a)?Xc(this,a):a;ta(a,S);if(a){var c=bd(this,a);-1!=c&&(c==this.h?(a.R(!1),this.h=-1):c<this.h&&this.h--);var d=a.a();d&&d.id&&this.T&&(c=this.T,d=d.id,d in c&&delete c[d])}a=V.g.removeChild.call(this,a,b);a.Bb(!0);return a};f.setOrientation=function(a){if(this.a())throw Error("Component already rendered");this.da=a}; | |
-f.La=function(a,b){if(b||this.i!=a&&this.dispatchEvent(a?"show":"hide")){this.i=a;var c=this.a();c&&(Mc(c,a),this.ba()&&fd(this.u(),this.fa&&this.i),b||this.dispatchEvent(this.i?"aftershow":"afterhide"))}};f.isEnabled=function(){return this.fa};f.za=function(a){this.fa!=a&&this.dispatchEvent(a?"enable":"disable")&&(a?(this.fa=!0,Zc(this,function(a){a.Wb?delete a.Wb:a.za(!0)})):(Zc(this,function(a){a.isEnabled()?a.za(!1):a.Wb=!0}),this.xa=this.fa=!1),this.ba()&&fd(this.u(),a&&this.i))};f.ba=function(){return this.mb}; | |
-f.Ja=function(a){a!=this.mb&&this.j&&Ad(this,a);this.mb=a;this.fa&&this.i&&fd(this.u(),a)};var Bd=function(a,b){(b=O(a,b))?b.R(!0):-1<a.h&&O(a,a.h).R(!1)};V.prototype.R=function(a){Bd(this,bd(this,a))}; | |
-var Cd=function(a){Gd(a,function(a,c){return(a+1)%c},$c(a)-1)},Dd=function(a){Gd(a,function(a,c){a--;return 0>a?c-1:a},0)},Fd=function(a){Gd(a,function(a,c){return(a+1)%c},a.h)},Ed=function(a){Gd(a,function(a,c){a--;return 0>a?c-1:a},a.h)},Gd=function(a,b,c){c=0>c?bd(a,a.s):c;var d=$c(a);c=b.call(a,c,d);for(var e=0;e<=d;){var g=O(a,c);if(g&&g.i&&g.isEnabled()&&g.A&2){a.Cb(c);break}e++;c=b.call(a,c,d)}};V.prototype.Cb=function(a){Bd(this,a)};var Hd=function(){};t(Hd,R);ba(Hd);f=Hd.prototype;f.H=function(){return"goog-tab"};f.pa=function(){return"tab"};f.D=function(a){var b=Hd.g.D.call(this,a);(a=a.ob())&&this.Fb(b,a);return b};f.X=function(a,b){b=Hd.g.X.call(this,a,b);var c=this.ob(b);c&&(a.Ub=c);a.m&8&&(c=a.getParent())&&q(c.ja)&&(a.I(8,!1),c.ja(a));return b};f.ob=function(a){return a.title||""};f.Fb=function(a,b){a&&(a.title=b||"")};var Id=function(a,b,c){S.call(this,a,b||Hd.qa(),c);ud(this,8,!0);this.ka|=9};t(Id,S);Id.prototype.ob=function(){return this.Ub};Id.prototype.Fb=function(a){this.b.Fb(this.a(),a);this.Ub=a};dd("goog-tab",function(){return new Id(null)});var W=function(){this.Ib="tablist"};t(W,P);ba(W);W.prototype.H=function(){return"goog-tab-bar"};W.prototype.Eb=function(a,b,c){this.Ob||(this.Ra||Jd(this),this.Ob=Ta(this.Ra));var d=this.Ob[b];d?(a.setOrientation(Kd(d)),a.Pb=d):W.g.Eb.call(this,a,b,c)};W.prototype.Ca=function(a){var b=W.g.Ca.call(this,a);this.Ra||Jd(this);b.push(this.Ra[a.Pb]);return b};var Jd=function(a){var b=a.H();a.Ra={top:b+"-top",bottom:b+"-bottom",start:b+"-start",end:b+"-end"}};var X=function(a,b,c){a=a||"top";this.setOrientation(Kd(a));this.Pb=a;V.call(this,this.da,b||W.qa(),c);Ld(this)};t(X,V);f=X.prototype;f.$b=!0;f.P=null;f.S=function(){X.g.S.call(this);Ld(this)};f.o=function(){X.g.o.call(this);this.P=null};f.removeChild=function(a,b){Md(this,a);return X.g.removeChild.call(this,a,b)};f.Cb=function(a){X.g.Cb.call(this,a);this.$b&&this.ja(O(this,a))};f.ja=function(a){a?sd(a,!0):this.P&&sd(this.P,!1)}; | |
-var Md=function(a,b){if(b&&b==a.P){for(var c=bd(a,b),d=c-1;b=O(a,d);d--)if(b.i&&b.isEnabled()){a.ja(b);return}for(c+=1;b=O(a,c);c++)if(b.i&&b.isEnabled()){a.ja(b);return}a.ja(null)}};f=X.prototype;f.tc=function(a){this.P&&this.P!=a.target&&sd(this.P,!1);this.P=a.target};f.uc=function(a){a.target==this.P&&(this.P=null)};f.rc=function(a){Md(this,a.target)};f.sc=function(a){Md(this,a.target)};f.Ga=function(){O(this,this.h)||this.R(this.P||O(this,0))}; | |
-var Ld=function(a){Wc(a).f(a,"select",a.tc).f(a,"unselect",a.uc).f(a,"disable",a.rc).f(a,"hide",a.sc)},Kd=function(a){return"start"==a||"end"==a?"vertical":"horizontal"};dd("goog-tab-bar",function(){return new X});var Y=function(a,b,c,d,e,g){function h(a){if(a){a.tabIndex=0;qc(a,k.pa());uc(a,"goog-zippy-header");Nd(k,a);var b=k;a&&(Gc(b.v,a),b.Mb.f(b.v,"key",b.zc))}}L.call(this);this.L=e||mb();this.U=this.L.a(a)||null;this.oa=this.L.a(d||null);this.$a=q(b)?b:null;this.Bc=g||"tab";this.na=this.$a||!b?null:this.L.a(b);this.l=1==c;m(c)||this.$a||(this.oa?this.l="none"!=this.oa.style.display:this.U&&(this.l=tc(this.U,"goog-zippy-expanded")));this.Mb=new K(this);this.v=new M;this.xb=new K(this);var k=this;h(this.U); | |
-h(this.oa);this.W(this.l)};t(Y,L);f=Y.prototype;f.sa=!0;f.o=function(){Y.g.o.call(this);Kb(this.Mb);Kb(this.v);Kb(this.xb)};f.pa=function(){return this.Bc};f.O=function(){return this.na};f.expand=function(){this.W(!0)};f.collapse=function(){this.W(!1)};f.toggle=function(){this.W(!this.l)}; | |
-f.W=function(a){this.na?Mc(this.na,a):a&&this.$a&&(this.na=this.$a());this.na&&uc(this.na,"goog-zippy-content");if(this.oa)Mc(this.U,!a),Mc(this.oa,a);else if(this.U){var b=this.U;a?uc(b,"goog-zippy-expanded"):wc(b,"goog-zippy-expanded");b=this.U;a?wc(b,"goog-zippy-collapsed"):uc(b,"goog-zippy-collapsed");sc(this.U,"expanded",a)}this.l=a;this.dispatchEvent(new Od("toggle",this,this.l))};f.Bb=function(a){this.sa!=a&&((this.sa=a)?(Nd(this,this.U),Nd(this,this.oa)):this.xb.Ia())}; | |
-var Nd=function(a,b){b&&a.xb.f(b,"click",a.yc)};Y.prototype.zc=function(a){if(13==a.keyCode||32==a.keyCode)this.toggle(),this.dispatchEvent(new Od("action",this,this.l,a)),a.preventDefault(),a.stopPropagation()};Y.prototype.yc=function(a){this.toggle();this.dispatchEvent(new Od("action",this,this.l,a))};var Od=function(a,b){F.call(this,a,b)};t(Od,F);var Qd=function(a,b){this.Gb=[];a=ob("span","ae-zippy",nb(document,a));for(var c=0,d;d=a[c];c++){var e=d.parentNode.parentNode.parentNode;if(m(e.nextElementSibling))e=e.nextElementSibling;else for(e=e.nextSibling;e&&1!=e.nodeType;)e=e.nextSibling;d=new Y(d,e,!1);this.Gb.push(d)}this.dc=new Pd(this.Gb,nb(document,b))};Qd.prototype.ec=function(){return this.dc};Qd.prototype.fc=function(){return this.Gb}; | |
-var Pd=function(a,b){this.Na=a;if(this.Na.length){a=0;for(var c;c=this.Na[a];a++)I(c,"toggle",this.Dc,!1,this)}this.ab=0;this.l=!1;a="ae-toggle ae-plus ae-action";this.Na.length||(a+=" ae-disabled");this.Z=sb("SPAN",{className:a},"Expand All");I(this.Z,"click",this.bc,!1,this);b&&b.appendChild(this.Z)};Pd.prototype.bc=function(){this.Na.length&&this.W(!this.l)}; | |
-Pd.prototype.Dc=function(a){a=a.currentTarget;a.l?this.ab+=1:--this.ab;a.l!=this.l&&(a.l?(this.l=!0,Rd(this,!0)):0==this.ab&&(this.l=!1,Rd(this,!1)))};Pd.prototype.W=function(a){this.l=a;a=0;for(var b;b=this.Na[a];a++)b.l!=this.l&&b.W(this.l);Rd(this)}; | |
-var Rd=function(a,b){(m(b)?b:a.l)?(Hb(a.Z,"ae-plus"),Fb(a.Z,"ae-minus"),wb(a.Z,"Collapse All")):(Hb(a.Z,"ae-minus"),Fb(a.Z,"ae-plus"),wb(a.Z,"Expand All"))},Sd=function(a){this.Cc=a;this.Tb={};var b,c=sb("DIV",{},b=sb("DIV",{id:"ae-stats-details-tabs",className:"goog-tab-bar goog-tab-bar-top"}),sb("DIV",{className:"goog-tab-bar-clear"}),a=sb("DIV",{id:"ae-stats-details-tabs-content",className:"goog-tab-content"})),d=new X;d.X(b);I(d,"select",this.Jb,!1,this);I(d,"unselect",this.Jb,!1,this);b=0;for(var e;e= | |
-this.Cc[b];b++)if(e=nb(document,"ae-stats-details-"+e)){var g=ob("h2",null,e)[0];var h=g;if(jb&&null!==h&&"innerText"in h)h=h.innerText.replace(/(\r\n|\r|\n)/g,"\n");else{var k=[];Db(h,k,!0);h=k.join("")}h=h.replace(/ \xAD /g," ").replace(/\xAD/g,"");h=h.replace(/\u200B/g,"");jb||(h=h.replace(/ +/g," "));" "!=h&&(h=h.replace(/^\s*/,""));ub(g);g=new Id(h);this.Tb[ha(g)]=e;d.Oa(g,!0);a.appendChild(e);0==b?d.ja(g):Mc(e,!1)}nb(document,"bd").appendChild(c)}; | |
-Sd.prototype.Jb=function(a){var b=this.Tb[ha(a.target)];Mc(b,"select"==a.type)};ma("ae.Stats.Details.Tabs",Sd);ma("goog.ui.Zippy",Y);Y.prototype.setExpanded=Y.prototype.W;ma("ae.Stats.MakeZippys",Qd);Qd.prototype.getExpandCollapse=Qd.prototype.ec;Qd.prototype.getZippys=Qd.prototype.fc;Pd.prototype.setExpanded=Pd.prototype.W;var Z=function(){this.jb=[];this.yb=[]},Td=[[5,.2,1],[6,.2,1.2],[5,.25,1.25],[6,.25,1.5],[4,.5,2],[5,.5,2.5],[6,.5,3],[4,1,4],[5,1,5],[6,1,6],[4,2,8],[5,2,10]],Ud=function(a){if(0>=a)return[2,.5,1];for(var b=1;1>a;)a*=10,b/=10;for(;10<=a;)a/=10,b*=10;for(var c=0;c<Td.length;c++)if(a<=Td[c][2])return[Td[c][0],Td[c][1]*b,Td[c][2]*b];return[5,2*b,10*b]};Z.prototype.gb="stats/static/pix.gif";Z.prototype.G="ae-stats-gantt-";Z.prototype.sb=0;Z.prototype.write=function(a){this.yb.push(a)}; | |
-var Vd=function(a,b,c,d){a.write('<tr class="'+a.G+'axisrow"><td width="20%"></td><td>');a.write('<div class="'+a.G+'axis">');for(var e=0;e<=b;e++)a.write('<img class="'+a.G+'tick" src="'+a.gb+'" alt="" '),a.write('style="left:'+e*c*d+'%"\n>'),a.write('<span class="'+a.G+'scale" style="left:'+e*c*d+'%">'),a.write(" "+e*c+"</span>");a.write("</div></td></tr>\n")}; | |
-Z.prototype.cc=function(){this.yb=[];var a=Ud(this.sb),b=a[0],c=a[1];a=100/a[2];this.write('<table class="'+this.G+'table">\n');Vd(this,b,c,a);for(var d=0;d<this.jb.length;d++){var e=this.jb[d];this.write('<tr class="'+this.G+'datarow"><td width="20%">');0<e.label.length&&(0<e.wa.length&&this.write('<a class="'+this.G+'link" href="'+e.wa+'">'),this.write(e.label),0<e.wa.length&&this.write("</a>"));this.write("</td>\n<td>");this.write('<div class="'+this.G+'container">');0<e.wa.length&&this.write('<a class="'+ | |
-this.G+'link" href="'+e.wa+'"\n>');this.write('<img class="'+this.G+'bar" src="'+this.gb+'" alt="" ');this.write('style="left:'+e.start*a+"%;width:"+e.duration*a+'%;min-width:1px"\n>');0<e.lb&&(this.write('<img class="'+this.G+'extra" src="'+this.gb+'" alt="" '),this.write('style="left:'+e.start*a+"%;width:"+e.lb*a+'%"\n>'));0<e.Lb.length&&(this.write('<span class="'+this.G+'inline" style="left:'+(e.start+Math.max(e.duration,e.lb))*a+'%"> '),this.write(e.Lb),this.write("</span>"));0<e.wa.length&& | |
-this.write("</a>");this.write("</div></td></tr>\n")}Vd(this,b,c,a);this.write("</table>\n");return this.yb.join("")};Z.prototype.Yb=function(a,b,c,d,e,g){this.sb=Math.max(this.sb,Math.max(b+c,b+d));this.jb.push({label:a,start:b,duration:c,lb:d,Lb:e,wa:g})};ma("Gantt",Z);Z.prototype.add_bar=Z.prototype.Yb;Z.prototype.draw=Z.prototype.cc;})(); | |
+this.screenX=d.screenX||0,this.screenY=d.screenY||0);this.button=a.button;this.keyCode=a.keyCode||0;this.key=a.key||"";this.charCode=a.charCode||("keypress"==c?a.keyCode:0);this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.Gb=C?a.metaKey:a.ctrlKey;this.pointerId=a.pointerId||0;this.pointerType=n(a.pointerType)?a.pointerType:Sb[a.pointerType]||"";this.state=a.state;this.V=a;a.defaultPrevented&&this.preventDefault()}};t(I,H); | |
+var Tb=Ib([1,4,2]),Sb=Ib({2:"touch",3:"pen",4:"mouse"}),Ub=function(a){return Lb?0==a.V.button:"click"==a.type?!0:!!(a.V.button&Tb[0])};I.prototype.stopPropagation=function(){I.g.stopPropagation.call(this);this.V.stopPropagation?this.V.stopPropagation():this.V.cancelBubble=!0};I.prototype.preventDefault=function(){I.g.preventDefault.call(this);var a=this.V;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,Nb)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(b){}};var Vb="closure_listenable_"+(1E6*Math.random()|0),Wb=function(a){return!(!a||!a[Vb])},Xb=0;var Yb=function(a,b,c,d,e){this.listener=a;this.kb=null;this.src=b;this.type=c;this.capture=!!d;this.cb=e;this.key=++Xb;this.Ca=this.Wa=!1},Zb=function(a){a.Ca=!0;a.listener=null;a.kb=null;a.src=null;a.cb=null};var J=function(a){this.src=a;this.w={};this.Sa=0};J.prototype.add=function(a,b,c,d,e){var g=a.toString();a=this.w[g];a||(a=this.w[g]=[],this.Sa++);var h=$b(a,b,d,e);-1<h?(b=a[h],c||(b.Wa=!1)):(b=new Yb(b,this.src,g,!!d,e),b.Wa=c,a.push(b));return b};J.prototype.remove=function(a,b,c,d){a=a.toString();if(!(a in this.w))return!1;var e=this.w[a];b=$b(e,b,c,d);return-1<b?(Zb(e[b]),u(null!=e.length),Array.prototype.splice.call(e,b,1),0==e.length&&(delete this.w[a],this.Sa--),!0):!1}; | |
+var ac=function(a,b){var c=b.type;c in a.w&&xa(a.w[c],b)&&(Zb(b),0==a.w[c].length&&(delete a.w[c],a.Sa--))};J.prototype.Oa=function(a){a=a&&a.toString();var b=0,c;for(c in this.w)if(!a||c==a){for(var d=this.w[c],e=0;e<d.length;e++)++b,Zb(d[e]);delete this.w[c];this.Sa--}};J.prototype.Ja=function(a,b,c,d){a=this.w[a.toString()];var e=-1;a&&(e=$b(a,b,c,d));return-1<e?a[e]:null}; | |
+J.prototype.hasListener=function(a,b){var c=m(a),d=c?a.toString():"",e=m(b);return Pa(this.w,function(a){for(var g=0;g<a.length;++g)if(!(c&&a[g].type!=d||e&&a[g].capture!=b))return!0;return!1})};var $b=function(a,b,c,d){for(var e=0;e<a.length;++e){var g=a[e];if(!g.Ca&&g.listener==b&&g.capture==!!c&&g.cb==d)return e}return-1};var bc="closure_lm_"+(1E6*Math.random()|0),cc={},dc=0,K=function(a,b,c,d,e){if(d&&d.once)return ec(a,b,c,d,e);if(p(b)){for(var g=0;g<b.length;g++)K(a,b[g],c,d,e);return null}c=fc(c);return Wb(a)?a.c(b,c,r(d)?!!d.capture:!!d,e):gc(a,b,c,!1,d,e)},gc=function(a,b,c,d,e,g){if(!b)throw Error("Invalid event type");var h=r(e)?!!e.capture:!!e,k=hc(a);k||(a[bc]=k=new J(a));c=k.add(b,c,d,h,g);if(c.kb)return c;d=ic();c.kb=d;d.src=a;d.listener=c;if(a.addEventListener)Ob||(e=h),void 0===e&&(e=!1),a.addEventListener(b.toString(), | |
+d,e);else if(a.attachEvent)a.attachEvent(jc(b.toString()),d);else if(a.addListener&&a.removeListener)u("change"===b,"MediaQueryList only has a change event"),a.addListener(d);else throw Error("addEventListener and attachEvent are unavailable.");dc++;return c},ic=function(){var a=kc,b=Mb?function(c){return a.call(b.src,b.listener,c)}:function(c){c=a.call(b.src,b.listener,c);if(!c)return c};return b},ec=function(a,b,c,d,e){if(p(b)){for(var g=0;g<b.length;g++)ec(a,b[g],c,d,e);return null}c=fc(c);return Wb(a)? | |
+a.Ub(b,c,r(d)?!!d.capture:!!d,e):gc(a,b,c,!0,d,e)},lc=function(a,b,c,d,e){if(p(b))for(var g=0;g<b.length;g++)lc(a,b[g],c,d,e);else d=r(d)?!!d.capture:!!d,c=fc(c),Wb(a)?a.G(b,c,d,e):a&&(a=hc(a))&&(b=a.Ja(b,c,d,e))&&mc(b)},mc=function(a){if("number"!=typeof a&&a&&!a.Ca){var b=a.src;if(Wb(b))ac(b.M,a);else{var c=a.type,d=a.kb;b.removeEventListener?b.removeEventListener(c,d,a.capture):b.detachEvent?b.detachEvent(jc(c),d):b.addListener&&b.removeListener&&b.removeListener(d);dc--;(c=hc(b))?(ac(c,a),0== | |
+c.Sa&&(c.src=null,b[bc]=null)):Zb(a)}}},jc=function(a){return a in cc?cc[a]:cc[a]="on"+a},oc=function(a,b,c,d){var e=!0;if(a=hc(a))if(b=a.w[b.toString()])for(b=b.concat(),a=0;a<b.length;a++){var g=b[a];g&&g.capture==c&&!g.Ca&&(g=nc(g,d),e=e&&!1!==g)}return e},nc=function(a,b){var c=a.listener,d=a.cb||a.src;a.Wa&&mc(a);return c.call(d,b)},kc=function(a,b){if(a.Ca)return!0;if(!Mb){if(!b)a:{b=["window","event"];for(var c=l,d=0;d<b.length;d++)if(c=c[b[d]],null==c){b=null;break a}b=c}d=b;b=new I(d,this); | |
+c=!0;if(!(0>d.keyCode||void 0!=d.returnValue)){a:{var e=!1;if(0==d.keyCode)try{d.keyCode=-1;break a}catch(h){e=!0}if(e||void 0==d.returnValue)d.returnValue=!0}d=[];for(e=b.currentTarget;e;e=e.parentNode)d.push(e);a=a.type;for(e=d.length-1;!b.ia&&0<=e;e--){b.currentTarget=d[e];var g=oc(d[e],a,!0,b);c=c&&g}for(e=0;!b.ia&&e<d.length;e++)b.currentTarget=d[e],g=oc(d[e],a,!1,b),c=c&&g}return c}return nc(a,new I(b,this))},hc=function(a){a=a[bc];return a instanceof J?a:null},pc="__closure_events_fn_"+(1E9* | |
+Math.random()>>>0),fc=function(a){u(a,"Listener can not be null.");if(q(a))return a;u(a.handleEvent,"An object listener must have handleEvent method.");a[pc]||(a[pc]=function(b){return a.handleEvent(b)});return a[pc]};var qc,rc={Qc:"activedescendant",$c:"atomic",ad:"autocomplete",ld:"busy",rd:"checked",td:"colindex",Fd:"controls",Ld:"describedby",Rd:"disabled",he:"dropeffect",ne:"expanded",pe:"flowto",we:"grabbed",Be:"haspopup",Ee:"hidden",Ie:"invalid",Me:"label",Ne:"labelledby",Oe:"level",Te:"live",Hf:"multiline",If:"multiselectable",Of:"orientation",Qf:"owns",fg:"posinset",hg:"pressed",ng:"readonly",qg:"relevant",rg:"required",zg:"rowindex",Gg:"selected",Kg:"setsize",Ng:"sort",xh:"valuemax",yh:"valuemin",zh:"valuenow", | |
+Ah:"valuetext"};var sc={Sc:"alert",Tc:"alertdialog",Yc:"application",Zc:"article",bd:"banner",md:"button",qd:"checkbox",ud:"columnheader",vd:"combobox",wd:"complementary",Cd:"contentinfo",Kd:"definition",Pd:"dialog",Qd:"directory",Sd:"document",ue:"form",xe:"grid",ye:"gridcell",ze:"group",Ce:"heading",Fe:"img",Pe:"link",Qe:"list",Re:"listbox",Se:"listitem",bf:"log",ef:"main",ff:"marquee",gf:"math",hf:"menu",jf:"menubar",kf:"menuitem",lf:"menuitemcheckbox",mf:"menuitemradio",Jf:"navigation",Kf:"note",Nf:"option", | |
+gg:"presentation",ig:"progressbar",kg:"radio",lg:"radiogroup",pg:"region",wg:"row",xg:"rowgroup",yg:"rowheader",Bg:"scrollbar",Cg:"search",Jg:"separator",Mg:"slider",Rg:"spinbutton",Ug:"status",Yg:"tab",Zg:"tablist",$g:"tabpanel",bh:"textbox",dh:"textinfo",fh:"timer",hh:"toolbar",ih:"tooltip",oh:"tree",ph:"treegrid",qh:"treeitem"};var tc=function(a,b){b?(u(Ra(sc,b),"No such ARIA role "+b),a.setAttribute("role",b)):a.removeAttribute("role")},vc=function(a,b,c){p(c)&&(c=c.join(" "));var d=uc(b);""===c||void 0==c?(qc||(qc={atomic:!1,autocomplete:"none",dropeffect:"none",haspopup:!1,live:"off",multiline:!1,multiselectable:!1,orientation:"vertical",readonly:!1,relevant:"additions text",required:!1,sort:"none",busy:!1,disabled:!1,hidden:!1,invalid:"false"}),c=qc,b in c?a.setAttribute(d,c[b]):a.removeAttribute(d)):a.setAttribute(d, | |
+c)},uc=function(a){u(a,"ARIA attribute cannot be empty.");u(Ra(rc,a),"No such ARIA attribute "+a);return"aria-"+a};var L=function(a){if(a.classList)return a.classList;a=a.className;return n(a)&&a.match(/\S+/g)||[]},wc=function(a,b){return a.classList?a.classList.contains(b):w(L(a),b)},xc=function(a,b){a.classList?a.classList.add(b):wc(a,b)||(a.className+=0<a.className.length?" "+b:b)},yc=function(a,b){if(a.classList)v(b,function(b){xc(a,b)});else{var c={};v(L(a),function(a){c[a]=!0});v(b,function(a){c[a]=!0});a.className="";for(var d in c)a.className+=0<a.className.length?" "+d:d}},zc=function(a,b){a.classList? | |
+a.classList.remove(b):wc(a,b)&&(a.className=va(L(a),function(a){return a!=b}).join(" "))},Ac=function(a,b){a.classList?v(b,function(b){zc(a,b)}):a.className=va(L(a),function(a){return!w(b,a)}).join(" ")};var M=function(a){E.call(this);this.wa=a;this.ya={}};t(M,E);var Bc=[];M.prototype.c=function(a,b,c,d){p(b)||(b&&(Bc[0]=b.toString()),b=Bc);for(var e=0;e<b.length;e++){var g=K(a,b[e],c||this.handleEvent,d||!1,this.wa||this);if(!g)break;this.ya[g.key]=g}return this};M.prototype.Ub=function(a,b,c,d){return Cc(this,a,b,c,d)};var Cc=function(a,b,c,d,e,g){if(p(c))for(var h=0;h<c.length;h++)Cc(a,b,c[h],d,e,g);else{b=ec(b,c,d||a.handleEvent,e,g||a.wa||a);if(!b)return a;a.ya[b.key]=b}return a}; | |
+M.prototype.G=function(a,b,c,d,e){if(p(b))for(var g=0;g<b.length;g++)this.G(a,b[g],c,d,e);else c=c||this.handleEvent,d=r(d)?!!d.capture:!!d,e=e||this.wa||this,c=fc(c),d=!!d,b=Wb(a)?a.Ja(b,c,d,e):a?(a=hc(a))?a.Ja(b,c,d,e):null:null,b&&(mc(b),delete this.ya[b.key]);return this};M.prototype.Oa=function(){Oa(this.ya,function(a,b){this.ya.hasOwnProperty(b)&&mc(a)},this);this.ya={}};M.prototype.o=function(){M.g.o.call(this);this.Oa()}; | |
+M.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented");};var N=function(){E.call(this);this.M=new J(this);this.gc=this;this.ib=null};t(N,E);N.prototype[Vb]=!0;f=N.prototype;f.Kb=function(a){this.ib=a};f.addEventListener=function(a,b,c,d){K(this,a,b,c,d)};f.removeEventListener=function(a,b,c,d){lc(this,a,b,c,d)}; | |
+f.dispatchEvent=function(a){Dc(this);var b=this.ib;if(b){var c=[];for(var d=1;b;b=b.ib)c.push(b),u(1E3>++d,"infinite loop")}b=this.gc;d=a.type||a;if(n(a))a=new H(a,b);else if(a instanceof H)a.target=a.target||b;else{var e=a;a=new H(d,b);Va(a,e)}e=!0;if(c)for(var g=c.length-1;!a.ia&&0<=g;g--){var h=a.currentTarget=c[g];e=Ec(h,d,!0,a)&&e}a.ia||(h=a.currentTarget=b,e=Ec(h,d,!0,a)&&e,a.ia||(e=Ec(h,d,!1,a)&&e));if(c)for(g=0;!a.ia&&g<c.length;g++)h=a.currentTarget=c[g],e=Ec(h,d,!1,a)&&e;return e}; | |
+f.o=function(){N.g.o.call(this);this.M&&this.M.Oa(void 0);this.ib=null};f.c=function(a,b,c,d){Dc(this);return this.M.add(String(a),b,!1,c,d)};f.Ub=function(a,b,c,d){return this.M.add(String(a),b,!0,c,d)};f.G=function(a,b,c,d){return this.M.remove(String(a),b,c,d)};var Ec=function(a,b,c,d){b=a.M.w[String(b)];if(!b)return!0;b=b.concat();for(var e=!0,g=0;g<b.length;++g){var h=b[g];if(h&&!h.Ca&&h.capture==c){var k=h.listener,Qa=h.cb||h.src;h.Wa&&ac(a.M,h);e=!1!==k.call(Qa,d)&&e}}return e&&0!=d.Yb}; | |
+N.prototype.Ja=function(a,b,c,d){return this.M.Ja(String(a),b,c,d)};N.prototype.hasListener=function(a,b){return this.M.hasListener(m(a)?String(a):void 0,b)};var Dc=function(a){u(a.M,"Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")};var Hc=function(a,b,c,d,e,g){if(!(z||A||B&&D("525")))return!0;if(C&&e)return Fc(a);if(e&&!d)return!1;"number"==typeof b&&(b=Gc(b));e=17==b||18==b||C&&91==b;if((!c||C)&&e||C&&16==b&&(d||g))return!1;if((B||A)&&d&&c)switch(a){case 220:case 219:case 221:case 192:case 186:case 189:case 187:case 188:case 190:case 191:case 192:case 222:return!1}if(z&&d&&b==a)return!1;switch(a){case 13:return!0;case 27:return!(B||A)}return Fc(a)},Fc=function(a){if(48<=a&&57>=a||96<=a&&106>=a||65<=a&&90>=a||(B||A)&&0==a)return!0; | |
+switch(a){case 32:case 43:case 63:case 64:case 107:case 109:case 110:case 111:case 186:case 59:case 189:case 187:case 61:case 188:case 190:case 191:case 192:case 222:case 219:case 220:case 221:return!0;default:return!1}},Gc=function(a){if($a)a=Ic(a);else if(C&&B)switch(a){case 93:a=91}return a},Ic=function(a){switch(a){case 61:return 187;case 59:return 186;case 173:return 189;case 224:return 91;case 0:return 224;default:return a}};var O=function(a,b){N.call(this);a&&Jc(this,a,b)};t(O,N);f=O.prototype;f.f=null;f.eb=null;f.Cb=null;f.fb=null;f.F=-1;f.ca=-1;f.pb=!1; | |
+var Kc={3:13,12:144,63232:38,63233:40,63234:37,63235:39,63236:112,63237:113,63238:114,63239:115,63240:116,63241:117,63242:118,63243:119,63244:120,63245:121,63246:122,63247:123,63248:44,63272:46,63273:36,63275:35,63276:33,63277:34,63289:144,63302:45},Lc={Up:38,Down:40,Left:37,Right:39,Enter:13,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,"U+007F":46,Home:36,End:35,PageUp:33,PageDown:34,Insert:45},Mc=z||A||B&&D("525"),Nc=C&&$a; | |
+O.prototype.wc=function(a){if(B||A)if(17==this.F&&!a.ctrlKey||18==this.F&&!a.altKey||C&&91==this.F&&!a.metaKey)this.ca=this.F=-1;-1==this.F&&(a.ctrlKey&&17!=a.keyCode?this.F=17:a.altKey&&18!=a.keyCode?this.F=18:a.metaKey&&91!=a.keyCode&&(this.F=91));Mc&&!Hc(a.keyCode,this.F,a.shiftKey,a.ctrlKey,a.altKey,a.metaKey)?this.handleEvent(a):(this.ca=Gc(a.keyCode),Nc&&(this.pb=a.altKey))};O.prototype.xc=function(a){this.ca=this.F=-1;this.pb=a.altKey}; | |
+O.prototype.handleEvent=function(a){var b=a.V,c=b.altKey;if(z&&"keypress"==a.type){var d=this.ca;var e=13!=d&&27!=d?b.keyCode:0}else(B||A)&&"keypress"==a.type?(d=this.ca,e=0<=b.charCode&&63232>b.charCode&&Fc(d)?b.charCode:0):Za&&!B?(d=this.ca,e=Fc(d)?b.keyCode:0):(d=b.keyCode||this.ca,e=b.charCode||0,Nc&&(c=this.pb),C&&63==e&&224==d&&(d=191));var g=d=Gc(d);d?63232<=d&&d in Kc?g=Kc[d]:25==d&&a.shiftKey&&(g=9):b.keyIdentifier&&b.keyIdentifier in Lc&&(g=Lc[b.keyIdentifier]);a=g==this.F;this.F=g;b=new Oc(g, | |
+e,a,b);b.altKey=c;this.dispatchEvent(b)};O.prototype.a=function(){return this.f};var Jc=function(a,b,c){a.fb&&a.detach();a.f=b;a.eb=K(a.f,"keypress",a,c);a.Cb=K(a.f,"keydown",a.wc,c,a);a.fb=K(a.f,"keyup",a.xc,c,a)};O.prototype.detach=function(){this.eb&&(mc(this.eb),mc(this.Cb),mc(this.fb),this.fb=this.Cb=this.eb=null);this.f=null;this.ca=this.F=-1};O.prototype.o=function(){O.g.o.call(this);this.detach()}; | |
+var Oc=function(a,b,c,d){I.call(this,d);this.type="key";this.keyCode=a;this.charCode=b;this.repeat=c};t(Oc,I);var Pc=function(a,b){a.style.display=b?"":"none"},Qc=$a?"MozUserSelect":B||A?"WebkitUserSelect":null,Rc=function(a,b,c){c=c?null:a.getElementsByTagName("*");if(Qc){if(b=b?"none":"",a.style&&(a.style[Qc]=b),c){a=0;for(var d;d=c[a];a++)d.style&&(d.style[Qc]=b)}}else if(z||Za)if(b=b?"on":"",a.setAttribute("unselectable",b),c)for(a=0;d=c[a];a++)d.setAttribute("unselectable",b)};var Tc=function(){};ba(Tc);Tc.prototype.Hc=0;var P=function(a){N.call(this);this.L=a||mb();this.lb=Uc;this.xa=null;this.j=!1;this.f=null;this.$=void 0;this.K=this.B=this.C=null;this.Ba=this.bc=!1};t(P,N);P.prototype.Gc=Tc.ta(); | |
+var Uc=null,Vc=function(a,b){switch(a){case 1:return b?"disable":"enable";case 2:return b?"highlight":"unhighlight";case 4:return b?"activate":"deactivate";case 8:return b?"select":"unselect";case 16:return b?"check":"uncheck";case 32:return b?"focus":"blur";case 64:return b?"open":"close"}throw Error("Invalid component state");},Wc=function(a){return a.xa||(a.xa=":"+(a.Gc.Hc++).toString(36))},Xc=function(a,b){if(a.C&&a.C.K){var c=a.C.K,d=a.xa;d in c&&delete c[d];Sa(a.C.K,b,a)}a.xa=b}; | |
+P.prototype.a=function(){return this.f};var Yc=function(a){a=a.f;u(a,"Can not call getElementStrict before rendering/decorating.");return a},Zc=function(a){a.$||(a.$=new M(a));return u(a.$)},ad=function(a,b){if(a==b)throw Error("Unable to set parent component");if(b&&a.C&&a.xa&&$c(a.C,a.xa)&&a.C!=b)throw Error("Unable to set parent component");a.C=b;P.g.Kb.call(a,b)};f=P.prototype;f.getParent=function(){return this.C}; | |
+f.Kb=function(a){if(this.C&&this.C!=a)throw Error("Method not supported");P.g.Kb.call(this,a)};f.ub=function(){return this.L};f.D=function(){this.f=this.L.createElement("DIV")};f.X=function(a){if(this.j)throw Error("Component already rendered");if(a&&this.ea(a)){this.bc=!0;var b=lb(a);this.L&&this.L.Y==b||(this.L=mb(a));this.rb(a);this.S()}else throw Error("Invalid element to decorate");};f.ea=function(){return!0};f.rb=function(a){this.f=a}; | |
+f.S=function(){this.j=!0;bd(this,function(a){!a.j&&a.a()&&a.S()})};f.ga=function(){bd(this,function(a){a.j&&a.ga()});this.$&&this.$.Oa();this.j=!1};f.o=function(){this.j&&this.ga();this.$&&(this.$.oa(),delete this.$);bd(this,function(a){a.oa()});!this.bc&&this.f&&ub(this.f);this.C=this.f=this.K=this.B=null;P.g.o.call(this)};f.Ua=function(a,b){this.ob(a,cd(this),b)}; | |
+f.ob=function(a,b,c){u(!!a,"Provided element must not be null.");if(a.j&&(c||!this.j))throw Error("Component already rendered");if(0>b||b>cd(this))throw Error("Child component index out of bounds");this.K&&this.B||(this.K={},this.B=[]);if(a.getParent()==this){var d=Wc(a);this.K[d]=a;xa(this.B,a)}else Sa(this.K,Wc(a),a);ad(a,this);Ba(this.B,b,0,a);if(a.j&&this.j&&a.getParent()==this)c=this.O(),b=c.childNodes[b]||null,b!=a.a()&&c.insertBefore(a.a(),b);else if(c){this.f||this.D();c=R(this,b+1);b=this.O(); | |
+c=c?c.f:null;if(a.j)throw Error("Component already rendered");a.f||a.D();b?b.insertBefore(a.f,c||null):a.L.Y.body.appendChild(a.f);a.C&&!a.C.j||a.S()}else this.j&&!a.j&&a.f&&a.f.parentNode&&1==a.f.parentNode.nodeType&&a.S()};f.O=function(){return this.f}; | |
+var dd=function(a){if(null==a.lb){var b=a.j?a.f:a.L.Y.body;a:{var c=lb(b);if(c.defaultView&&c.defaultView.getComputedStyle&&(c=c.defaultView.getComputedStyle(b,null))){c=c.direction||c.getPropertyValue("direction")||"";break a}c=""}a.lb="rtl"==(c||(b.currentStyle?b.currentStyle.direction:null)||b.style&&b.style.direction)}return a.lb};P.prototype.Qa=function(a){if(this.j)throw Error("Component already rendered");this.lb=a}; | |
+var cd=function(a){return a.B?a.B.length:0},$c=function(a,b){a.K&&b?(a=a.K,b=(null!==a&&b in a?a[b]:void 0)||null):b=null;return b},R=function(a,b){return a.B?a.B[b]||null:null},bd=function(a,b,c){a.B&&v(a.B,b,c)},ed=function(a,b){return a.B&&b?ua(a.B,b):-1};P.prototype.removeChild=function(a,b){if(a){var c=n(a)?a:Wc(a);a=$c(this,c);if(c&&a){var d=this.K;c in d&&delete d[c];xa(this.B,a);b&&(a.ga(),a.f&&ub(a.f));ad(a,null)}}if(!a)throw Error("Child is not in parent component");return a};var gd=function(a,b){if(!a)throw Error("Invalid class name "+a);if(!q(b))throw Error("Invalid decorator function "+b);fd[a]=b},hd={},fd={};var S=function(a){this.Pb=a};ba(S);S.prototype.sa=function(){return this.Pb};var id=function(a,b){a&&(a.tabIndex=b?0:-1)};f=S.prototype;f.D=function(a){return a.ub().D("DIV",this.Ia(a).join(" "))};f.O=function(a){return a};f.ea=function(a){return"DIV"==a.tagName};f.X=function(a,b){b.id&&Xc(a,b.id);var c=this.I(),d=!1,e=L(b);e&&v(e,function(b){b==c?d=!0:b&&this.Lb(a,b,c)},this);d||xc(b,c);jd(a,this.O(b));return b}; | |
+f.Lb=function(a,b,c){b==c+"-disabled"?a.Da(!1):b==c+"-horizontal"?a.setOrientation("horizontal"):b==c+"-vertical"&&a.setOrientation("vertical")};var jd=function(a,b){if(b)for(var c=b.firstChild,d;c&&c.parentNode==b;){d=c.nextSibling;if(1==c.nodeType){a:{var e=c;u(e);e=L(e);for(var g=0,h=e.length;g<h;g++){var k=e[g];if(k=k in fd?fd[k]():null){e=k;break a}}e=null}e&&(e.f=c,a.isEnabled()||e.Da(!1),a.Ua(e),e.X(c))}else c.nodeValue&&""!=Ca(c.nodeValue)||b.removeChild(c);c=d}}; | |
+S.prototype.Ab=function(a){a=a.a();u(a,"The container DOM element cannot be null.");Rc(a,!0,$a);z&&(a.hideFocus=!0);var b=this.sa();b&&tc(a,b)};S.prototype.u=function(a){return a.a()};S.prototype.I=function(){return"goog-container"};S.prototype.Ia=function(a){var b=this.I(),c=[b,"horizontal"==a.da?b+"-horizontal":b+"-vertical"];a.isEnabled()||c.push(b+"-disabled");return c};var T=function(){},kd;ba(T);var ld={button:"pressed",checkbox:"checked",menuitem:"selected",menuitemcheckbox:"checked",menuitemradio:"checked",radio:"checked",tab:"selected",treeitem:"selected"};f=T.prototype;f.sa=function(){};f.D=function(a){return a.ub().D("DIV",this.Ia(a).join(" "),a.Ga)};f.O=function(a){return a};f.Ha=function(a,b,c){if(a=a.a?a.a():a){var d=[b];z&&!D("7")&&(d=md(L(a),b),d.push(b));(c?yc:Ac)(a,d)}};f.ea=function(){return!0}; | |
+f.X=function(a,b){b.id&&Xc(a,b.id);var c=this.O(b);c&&c.firstChild?nd(a,c.firstChild.nextSibling?za(c.childNodes):c.firstChild):a.Ga=null;var d=0,e=this.I(),g=this.I(),h=!1,k=!1,Qa=!1,Q=za(L(b));v(Q,function(a){h||a!=e?k||a!=g?d|=od(this,a):k=!0:(h=!0,g==e&&(k=!0));1==od(this,a)&&(ra(c),Bb(c)&&Cb(c,!1))},this);a.m=d;h||(Q.push(e),g==e&&(k=!0));k||Q.push(g);(a=a.N)&&Q.push.apply(Q,a);if(z&&!D("7")){var Sc=md(Q);0<Sc.length&&(Q.push.apply(Q,Sc),Qa=!0)}if(!h||!k||a||Qa)b.className=Q.join(" ");return b}; | |
+f.Ab=function(a){dd(a)&&this.Qa(a.a(),!0);a.isEnabled()&&this.Pa(a,a.i)};var pd=function(a,b,c){if(a=c||a.sa())u(b,"The element passed as a first parameter cannot be null."),c=b.getAttribute("role")||null,a!=c&&tc(b,a)};f=T.prototype;f.Hb=function(a,b){vc(a,"label",b)};f.mb=function(a,b){Rc(a,!b,!z&&!Za)};f.Qa=function(a,b){this.Ha(a,this.I()+"-rtl",b)};f.ba=function(a){var b;return a.A&32&&(b=a.u())?Bb(b):!1}; | |
+f.Pa=function(a,b){var c;if(a.A&32&&(c=a.u())){if(!b&&a.m&32){try{c.blur()}catch(d){}a.m&32&&a.Ka(null)}Bb(c)!=b&&Cb(c,b)}};f.Ra=function(a,b){Pc(a,b);a&&vc(a,"hidden",!b)};f.J=function(a,b,c){var d=a.a();if(d){var e=qd(this,b);e&&this.Ha(a,e,c);rd(d,b,c)}}; | |
+var rd=function(a,b,c){kd||(kd={1:"disabled",8:"selected",16:"checked",64:"expanded"});u(a,"The element passed as a first parameter cannot be null.");b=kd[b];var d=a.getAttribute("role")||null;d&&(d=ld[d]||b,b="checked"==b||"selected"==b?d:b);b&&vc(a,b,c)};T.prototype.u=function(a){return a.a()};T.prototype.I=function(){return"goog-control"}; | |
+T.prototype.Ia=function(a){var b=this.I(),c=[b],d=this.I();d!=b&&c.push(d);b=a.getState();for(d=[];b;){var e=b&-b;d.push(qd(this,e));b&=~e}c.push.apply(c,d);(a=a.N)&&c.push.apply(c,a);z&&!D("7")&&c.push.apply(c,md(c));return c}; | |
+var md=function(a,b){var c=[];b&&(a=ya(a,[b]));v([],function(d){!wa(d,la(w,a))||b&&!w(d,b)||c.push(d.join("_"))});return c},qd=function(a,b){a.Ya||sd(a);return a.Ya[b]},od=function(a,b){a.Zb||(a.Ya||sd(a),a.Zb=Ta(a.Ya));a=parseInt(a.Zb[b],10);return isNaN(a)?0:a},sd=function(a){var b=a.I(),c=!x(b.replace(/\xa0|\s/g," ")," ");u(c,"ControlRenderer has an invalid css class: '"+b+"'");a.Ya={1:b+"-disabled",2:b+"-hover",4:b+"-active",8:b+"-selected",16:b+"-checked",32:b+"-focused",64:b+"-open"}};var U=function(a,b,c){P.call(this,c);if(!b){b=this.constructor;for(var d;b;){d=ha(b);if(d=hd[d])break;b=b.g?b.g.constructor:null}b=d?q(d.ta)?d.ta():new d:null}this.b=b;this.Ga=m(a)?a:null;this.Ob=null};t(U,P);f=U.prototype;f.Ga=null;f.m=0;f.A=39;f.kc=255;f.ka=0;f.i=!0;f.N=null;f.va=!0;f.Va=!1;f.Xb=null;f.Ib=function(a){this.j&&a!=this.va&&td(this,a);this.va=a};f.u=function(){return this.b.u(this)};f.ab=function(){return this.v||(this.v=new O)}; | |
+f.Ha=function(a,b){b?a&&(this.N?w(this.N,a)||this.N.push(a):this.N=[a],this.b.Ha(this,a,!0)):a&&this.N&&xa(this.N,a)&&(0==this.N.length&&(this.N=null),this.b.Ha(this,a,!1))};f.D=function(){var a=this.b.D(this);this.f=a;pd(this.b,a,this.Xb);this.Va||this.b.mb(a,!1);this.i||this.b.Ra(a,!1)};f.Hb=function(a){this.Ob=a;var b=this.a();b&&this.b.Hb(b,a)};f.O=function(){return this.b.O(this.a())};f.ea=function(a){return this.b.ea(a)}; | |
+f.rb=function(a){this.f=a=this.b.X(this,a);pd(this.b,a,this.Xb);this.Va||this.b.mb(a,!1);this.i="none"!=a.style.display}; | |
+f.S=function(){U.g.S.call(this);var a=this.b,b=Yc(this);u(this);u(b);var c=this.Ob;null!=c&&a.Hb(b,c);this.i||vc(b,"hidden",!this.i);this.isEnabled()||rd(b,1,!this.isEnabled());this.A&8&&rd(b,8,!!(this.m&8));this.A&16&&rd(b,16,!!(this.m&16));this.A&64&&rd(b,64,!!(this.m&64));this.b.Ab(this);this.A&-2&&(this.va&&td(this,!0),this.A&32&&(a=this.u()))&&(b=this.ab(),Jc(b,a),Zc(this).c(b,"key",this.aa).c(a,"focus",this.Ma).c(a,"blur",this.Ka))}; | |
+var td=function(a,b){var c=a.Ba?Rb:Qb,d=Zc(a),e=a.a();b?(d.c(e,c.Fa,a.yb).c(e,c.ma,a.ua).c(e,[c.na,c.la],a.bb).c(e,c.Ea,a.xb),a.Ba&&d.c(e,"gotpointercapture",a.jb),a.La!=aa&&d.c(e,"contextmenu",a.La),z&&(D(9)||d.c(e,"dblclick",a.Rb),a.Na||(a.Na=new ud(a),Jb(a,la(Kb,a.Na))))):(d.G(e,c.Fa,a.yb).G(e,c.ma,a.ua).G(e,[c.na,c.la],a.bb).G(e,c.Ea,a.xb),a.Ba&&d.G(e,"gotpointercapture",a.jb),a.La!=aa&&d.G(e,"contextmenu",a.La),z&&(D(9)||d.G(e,"dblclick",a.Rb),Kb(a.Na),a.Na=null))}; | |
+U.prototype.ga=function(){U.g.ga.call(this);this.v&&this.v.detach();this.i&&this.isEnabled()&&this.b.Pa(this,!1)};U.prototype.o=function(){U.g.o.call(this);this.v&&(this.v.oa(),delete this.v);delete this.b;this.Na=this.N=this.Ga=null};var nd=function(a,b){a.Ga=b};f=U.prototype;f.Qa=function(a){U.g.Qa.call(this,a);var b=this.a();b&&this.b.Qa(b,a)};f.mb=function(a){this.Va=a;var b=this.a();b&&this.b.mb(b,a)}; | |
+f.Ra=function(a,b){if(b||this.i!=a&&this.dispatchEvent(a?"show":"hide"))(b=this.a())&&this.b.Ra(b,a),this.isEnabled()&&this.b.Pa(this,a),this.i=a};f.isEnabled=function(){return!(this.m&1)};f.Da=function(a){var b=this.getParent();b&&"function"==typeof b.isEnabled&&!b.isEnabled()||!vd(this,1,!a)||(a||(this.setActive(!1),this.R(!1)),this.i&&this.b.Pa(this,a),this.J(1,!a,!0))};f.R=function(a){vd(this,2,a)&&this.J(2,a)};f.setActive=function(a){vd(this,4,a)&&this.J(4,a)}; | |
+var wd=function(a,b){vd(a,8,b)&&a.J(8,b)},xd=function(a,b){vd(a,64,b)&&a.J(64,b)};U.prototype.getState=function(){return this.m};U.prototype.J=function(a,b,c){c||1!=a?this.A&a&&b!=!!(this.m&a)&&(this.b.J(this,a,b),this.m=b?this.m|a:this.m&~a):this.Da(!b)}; | |
+var yd=function(a,b,c){if(a.j&&a.m&b&&!c)throw Error("Component already rendered");!c&&a.m&b&&a.J(b,!1);a.A=c?a.A|b:a.A&~b},V=function(a,b){return!!(a.kc&b)&&!!(a.A&b)},vd=function(a,b,c){return!!(a.A&b)&&!!(a.m&b)!=c&&(!(a.ka&b)||a.dispatchEvent(Vc(b,c)))&&!a.pa};f=U.prototype;f.yb=function(a){(!a.relatedTarget||!vb(this.a(),a.relatedTarget))&&this.dispatchEvent("enter")&&this.isEnabled()&&V(this,2)&&this.R(!0)}; | |
+f.xb=function(a){a.relatedTarget&&vb(this.a(),a.relatedTarget)||!this.dispatchEvent("leave")||(V(this,4)&&this.setActive(!1),V(this,2)&&this.R(!1))};f.jb=function(a){var b=a.target;b.releasePointerCapture&&b.releasePointerCapture(a.pointerId)};f.La=aa;f.ua=function(a){this.isEnabled()&&(V(this,2)&&this.R(!0),!Ub(a)||B&&C&&a.ctrlKey||(V(this,4)&&this.setActive(!0),this.b&&this.b.ba(this)&&this.u().focus()));this.Va||!Ub(a)||B&&C&&a.ctrlKey||a.preventDefault()}; | |
+f.bb=function(a){this.isEnabled()&&(V(this,2)&&this.R(!0),this.m&4&&zd(this,a)&&V(this,4)&&this.setActive(!1))};f.Rb=function(a){this.isEnabled()&&zd(this,a)};var zd=function(a,b){if(V(a,16)){var c=!(a.m&16);vd(a,16,c)&&a.J(16,c)}V(a,8)&&wd(a,!0);V(a,64)&&xd(a,!(a.m&64));c=new H("action",a);b&&(c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey,c.Gb=b.Gb);return a.dispatchEvent(c)};U.prototype.Ma=function(){V(this,32)&&vd(this,32,!0)&&this.J(32,!0)}; | |
+U.prototype.Ka=function(){V(this,4)&&this.setActive(!1);V(this,32)&&vd(this,32,!1)&&this.J(32,!1)};U.prototype.aa=function(a){return this.i&&this.isEnabled()&&this.wb(a)?(a.preventDefault(),a.stopPropagation(),!0):!1};U.prototype.wb=function(a){return 13==a.keyCode&&zd(this,a)};if(!q(U))throw Error("Invalid component class "+U);if(!q(T))throw Error("Invalid renderer class "+T);var Ad=ha(U);hd[Ad]=T;gd("goog-control",function(){return new U(null)}); | |
+var ud=function(a){E.call(this);this.$a=a;this.Za=!1;this.wa=new M(this);Jb(this,la(Kb,this.wa));a=Yc(this.$a);this.wa.c(a,"mousedown",this.yc).c(a,"mouseup",this.zc).c(a,"click",this.rc)};t(ud,E);var Bd=!z||9<=Number(gb);ud.prototype.yc=function(){this.Za=!1};ud.prototype.zc=function(){this.Za=!0}; | |
+var Cd=function(a,b){if(!Bd)return a.button=0,a.type=b,a;var c=document.createEvent("MouseEvents");c.initMouseEvent(b,a.bubbles,a.cancelable,a.view||null,a.detail,a.screenX,a.screenY,a.clientX,a.clientY,a.ctrlKey,a.altKey,a.shiftKey,a.metaKey,0,a.relatedTarget||null);return c};ud.prototype.rc=function(a){if(this.Za)this.Za=!1;else{var b=a.V,c=b.button,d=b.type,e=Cd(b,"mousedown");this.$a.ua(new I(e,a.currentTarget));e=Cd(b,"mouseup");this.$a.bb(new I(e,a.currentTarget));Bd||(b.button=c,b.type=d)}}; | |
+ud.prototype.o=function(){this.$a=null;ud.g.o.call(this)};var W=function(a,b,c){P.call(this,c);this.b=b||S.ta();this.da=a||"vertical"};t(W,P);f=W.prototype;f.Db=null;f.v=null;f.b=null;f.da=null;f.i=!0;f.fa=!0;f.tb=!0;f.h=-1;f.s=null;f.Aa=!1;f.ic=!1;f.Kc=!0;f.T=null;f.u=function(){return this.Db||this.b.u(this)};f.ab=function(){return this.v||(this.v=new O(this.u()))};f.D=function(){this.f=this.b.D(this)};f.O=function(){return this.b.O(this.a())};f.ea=function(a){return this.b.ea(a)}; | |
+f.rb=function(a){this.f=this.b.X(this,a);"none"==a.style.display&&(this.i=!1)}; | |
+f.S=function(){W.g.S.call(this);bd(this,function(a){a.j&&Dd(this,a)},this);var a=this.a();this.b.Ab(this);this.Ra(this.i,!0);var b=this.Ba?Rb:Qb;Zc(this).c(this,"enter",this.uc).c(this,"highlight",this.vc).c(this,"unhighlight",this.Fc).c(this,"open",this.Ac).c(this,"close",this.sc).c(a,b.ma,this.ua).c(lb(a),[b.na,b.la],this.tc).c(a,[b.ma,b.na,b.la,b.Fa,b.Ea,"contextmenu"],this.qc);this.Ba&&Zc(this).c(a,"gotpointercapture",this.jb);this.ba()&&Ed(this,!0)}; | |
+f.jb=function(a){var b=a.target;b.releasePointerCapture&&b.releasePointerCapture(a.pointerId)};var Ed=function(a,b){var c=Zc(a),d=a.u();b?c.c(d,"focus",a.Ma).c(d,"blur",a.Ka).c(a.ab(),"key",a.aa):c.G(d,"focus",a.Ma).G(d,"blur",a.Ka).G(a.ab(),"key",a.aa)};f=W.prototype;f.ga=function(){Fd(this,-1);this.s&&xd(this.s,!1);this.Aa=!1;W.g.ga.call(this)};f.o=function(){W.g.o.call(this);this.v&&(this.v.oa(),this.v=null);this.b=this.s=this.T=this.Db=null};f.uc=function(){return!0}; | |
+f.vc=function(a){var b=ed(this,a.target);if(-1<b&&b!=this.h){var c=R(this,this.h);c&&c.R(!1);this.h=b;c=R(this,this.h);this.Aa&&c.setActive(!0);this.Kc&&this.s&&c!=this.s&&(c.A&64?xd(c,!0):xd(this.s,!1))}b=this.a();u(b,"The DOM element for the container cannot be null.");null!=a.target.a()&&vc(b,"activedescendant",a.target.a().id)};f.Fc=function(a){a.target==R(this,this.h)&&(this.h=-1);a=this.a();u(a,"The DOM element for the container cannot be null.");a.removeAttribute(uc("activedescendant"))}; | |
+f.Ac=function(a){(a=a.target)&&a!=this.s&&a.getParent()==this&&(this.s&&xd(this.s,!1),this.s=a)};f.sc=function(a){a.target==this.s&&(this.s=null);var b=this.a(),c=a.target.a();b&&a.target.m&2&&c&&(a="",c&&(a=c.id,u(a,"The active element should have an id.")),vc(b,"activedescendant",a))};f.ua=function(a){this.fa&&(this.Aa=!0);var b=this.u();b&&Bb(b)?b.focus():a.preventDefault()};f.tc=function(){this.Aa=!1}; | |
+f.qc=function(a){var b=this.Ba?Rb:Qb;a:{var c=a.target;if(this.T)for(var d=this.a();c&&c!==d;){var e=c.id;if(e in this.T){c=this.T[e];break a}c=c.parentNode}c=null}if(c)switch(a.type){case b.ma:c.ua(a);break;case b.na:case b.la:c.bb(a);break;case b.Fa:c.yb(a);break;case b.Ea:c.xb(a);break;case "contextmenu":c.La(a)}};f.Ma=function(){};f.Ka=function(){Fd(this,-1);this.Aa=!1;this.s&&xd(this.s,!1)}; | |
+f.aa=function(a){return this.isEnabled()&&this.i&&(0!=cd(this)||this.Db)&&this.wb(a)?(a.preventDefault(),a.stopPropagation(),!0):!1}; | |
+f.wb=function(a){var b=R(this,this.h);if(b&&"function"==typeof b.aa&&b.aa(a)||this.s&&this.s!=b&&"function"==typeof this.s.aa&&this.s.aa(a))return!0;if(a.shiftKey||a.ctrlKey||a.metaKey||a.altKey)return!1;switch(a.keyCode){case 27:if(this.ba())this.u().blur();else return!1;break;case 36:Gd(this);break;case 35:Hd(this);break;case 38:if("vertical"==this.da)Id(this);else return!1;break;case 37:if("horizontal"==this.da)dd(this)?Jd(this):Id(this);else return!1;break;case 40:if("vertical"==this.da)Jd(this); | |
+else return!1;break;case 39:if("horizontal"==this.da)dd(this)?Id(this):Jd(this);else return!1;break;default:return!1}return!0};var Dd=function(a,b){var c=b.a();c=c.id||(c.id=Wc(b));a.T||(a.T={});a.T[c]=b};f=W.prototype;f.Ua=function(a,b){ta(a,U,"The child of a container must be a control");W.g.Ua.call(this,a,b)}; | |
+f.ob=function(a,b,c){ta(a,U);a.ka|=2;a.ka|=64;!this.ba()&&this.ic||yd(a,32,!1);a.Ib(!1);var d=a.getParent()==this?ed(this,a):-1;W.g.ob.call(this,a,b,c);a.j&&this.j&&Dd(this,a);a=d;-1==a&&(a=cd(this));a==this.h?this.h=Math.min(cd(this)-1,b):a>this.h&&b<=this.h?this.h++:a<this.h&&b>this.h&&this.h--}; | |
+f.removeChild=function(a,b){a=n(a)?$c(this,a):a;ta(a,U);if(a){var c=ed(this,a);-1!=c&&(c==this.h?(a.R(!1),this.h=-1):c<this.h&&this.h--);var d=a.a();d&&d.id&&this.T&&(c=this.T,d=d.id,d in c&&delete c[d])}a=W.g.removeChild.call(this,a,b);a.Ib(!0);return a};f.setOrientation=function(a){if(this.a())throw Error("Component already rendered");this.da=a}; | |
+f.Ra=function(a,b){if(b||this.i!=a&&this.dispatchEvent(a?"show":"hide")){this.i=a;var c=this.a();c&&(Pc(c,a),this.ba()&&id(this.u(),this.fa&&this.i),b||this.dispatchEvent(this.i?"aftershow":"afterhide"))}};f.isEnabled=function(){return this.fa};f.Da=function(a){this.fa!=a&&this.dispatchEvent(a?"enable":"disable")&&(a?(this.fa=!0,bd(this,function(a){a.cc?delete a.cc:a.Da(!0)})):(bd(this,function(a){a.isEnabled()?a.Da(!1):a.cc=!0}),this.Aa=this.fa=!1),this.ba()&&id(this.u(),a&&this.i))};f.ba=function(){return this.tb}; | |
+f.Pa=function(a){a!=this.tb&&this.j&&Ed(this,a);this.tb=a;this.fa&&this.i&&id(this.u(),a)};var Fd=function(a,b){(b=R(a,b))?b.R(!0):-1<a.h&&R(a,a.h).R(!1)};W.prototype.R=function(a){Fd(this,ed(this,a))}; | |
+var Gd=function(a){Kd(a,function(a,c){return(a+1)%c},cd(a)-1)},Hd=function(a){Kd(a,function(a,c){a--;return 0>a?c-1:a},0)},Jd=function(a){Kd(a,function(a,c){return(a+1)%c},a.h)},Id=function(a){Kd(a,function(a,c){a--;return 0>a?c-1:a},a.h)},Kd=function(a,b,c){c=0>c?ed(a,a.s):c;var d=cd(a);c=b.call(a,c,d);for(var e=0;e<=d;){var g=R(a,c);if(g&&g.i&&g.isEnabled()&&g.A&2){a.Jb(c);break}e++;c=b.call(a,c,d)}};W.prototype.Jb=function(a){Fd(this,a)};var Ld=function(){};t(Ld,T);ba(Ld);f=Ld.prototype;f.I=function(){return"goog-tab"};f.sa=function(){return"tab"};f.D=function(a){var b=Ld.g.D.call(this,a);(a=a.vb())&&this.Mb(b,a);return b};f.X=function(a,b){b=Ld.g.X.call(this,a,b);var c=this.vb(b);c&&(a.ac=c);a.m&8&&(c=a.getParent())&&q(c.ja)&&(a.J(8,!1),c.ja(a));return b};f.vb=function(a){return a.title||""};f.Mb=function(a,b){a&&(a.title=b||"")};var Md=function(a,b,c){U.call(this,a,b||Ld.ta(),c);yd(this,8,!0);this.ka|=9};t(Md,U);Md.prototype.vb=function(){return this.ac};Md.prototype.Mb=function(a){this.b.Mb(this.a(),a);this.ac=a};gd("goog-tab",function(){return new Md(null)});var Nd=function(){this.Pb="tablist"};t(Nd,S);ba(Nd);Nd.prototype.I=function(){return"goog-tab-bar"};Nd.prototype.Lb=function(a,b,c){this.Vb||(this.Xa||Od(this),this.Vb=Ta(this.Xa));var d=this.Vb[b];d?(a.setOrientation(Pd(d)),a.Wb=d):Nd.g.Lb.call(this,a,b,c)};Nd.prototype.Ia=function(a){var b=Nd.g.Ia.call(this,a);this.Xa||Od(this);b.push(this.Xa[a.Wb]);return b};var Od=function(a){var b=a.I();a.Xa={top:b+"-top",bottom:b+"-bottom",start:b+"-start",end:b+"-end"}};var X=function(a,b,c){a=a||"top";this.setOrientation(Pd(a));this.Wb=a;W.call(this,this.da,b||Nd.ta(),c);Qd(this)};t(X,W);f=X.prototype;f.jc=!0;f.P=null;f.S=function(){X.g.S.call(this);Qd(this)};f.o=function(){X.g.o.call(this);this.P=null};f.removeChild=function(a,b){Rd(this,a);return X.g.removeChild.call(this,a,b)};f.Jb=function(a){X.g.Jb.call(this,a);this.jc&&this.ja(R(this,a))};f.ja=function(a){a?wd(a,!0):this.P&&wd(this.P,!1)}; | |
+var Rd=function(a,b){if(b&&b==a.P){for(var c=ed(a,b),d=c-1;b=R(a,d);d--)if(b.i&&b.isEnabled()){a.ja(b);return}for(c+=1;b=R(a,c);c++)if(b.i&&b.isEnabled()){a.ja(b);return}a.ja(null)}};f=X.prototype;f.Dc=function(a){this.P&&this.P!=a.target&&wd(this.P,!1);this.P=a.target};f.Ec=function(a){a.target==this.P&&(this.P=null)};f.Bc=function(a){Rd(this,a.target)};f.Cc=function(a){Rd(this,a.target)};f.Ma=function(){R(this,this.h)||this.R(this.P||R(this,0))}; | |
+var Qd=function(a){Zc(a).c(a,"select",a.Dc).c(a,"unselect",a.Ec).c(a,"disable",a.Bc).c(a,"hide",a.Cc)},Pd=function(a){return"start"==a||"end"==a?"vertical":"horizontal"};gd("goog-tab-bar",function(){return new X});var Y=function(a,b,c,d,e,g){function h(a){if(a){a.tabIndex=0;tc(a,k.sa());xc(a,"goog-zippy-header");Sd(k,a);var b=k;a&&(Jc(b.v,a),b.Tb.c(b.v,"key",b.Jc))}}N.call(this);this.L=e||mb();this.U=this.L.a(a)||null;this.ra=this.L.a(d||null);this.gb=q(b)?b:null;this.Lc=g||"tab";this.qa=this.gb||!b?null:this.L.a(b);this.l=1==c;m(c)||this.gb||(this.ra?this.l="none"!=this.ra.style.display:this.U&&(this.l=wc(this.U,"goog-zippy-expanded")));this.Tb=new M(this);this.v=new O;this.Eb=new M(this);var k=this;h(this.U); | |
+h(this.ra);this.W(this.l)};t(Y,N);f=Y.prototype;f.va=!0;f.o=function(){Y.g.o.call(this);Kb(this.Tb);Kb(this.v);Kb(this.Eb)};f.sa=function(){return this.Lc};f.O=function(){return this.qa};f.expand=function(){this.W(!0)};f.collapse=function(){this.W(!1)};f.toggle=function(){this.W(!this.l)}; | |
+f.W=function(a){this.qa?Pc(this.qa,a):a&&this.gb&&(this.qa=this.gb());this.qa&&xc(this.qa,"goog-zippy-content");if(this.ra)Pc(this.U,!a),Pc(this.ra,a);else if(this.U){var b=this.U;a?xc(b,"goog-zippy-expanded"):zc(b,"goog-zippy-expanded");b=this.U;a?zc(b,"goog-zippy-collapsed"):xc(b,"goog-zippy-collapsed");vc(this.U,"expanded",a)}this.l=a;this.dispatchEvent(new Td("toggle",this,this.l))};f.Ib=function(a){this.va!=a&&((this.va=a)?(Sd(this,this.U),Sd(this,this.ra)):this.Eb.Oa())}; | |
+var Sd=function(a,b){b&&a.Eb.c(b,"click",a.Ic)};Y.prototype.Jc=function(a){if(13==a.keyCode||32==a.keyCode)this.toggle(),this.dispatchEvent(new Td("action",this,this.l,a)),a.preventDefault(),a.stopPropagation()};Y.prototype.Ic=function(a){this.toggle();this.dispatchEvent(new Td("action",this,this.l,a))};var Td=function(a,b){H.call(this,a,b)};t(Td,H);var Vd=function(a,b){this.Nb=[];a=ob("span","ae-zippy",nb(document,a));for(var c=0,d;d=a[c];c++){var e=d.parentNode.parentNode.parentNode;if(m(e.nextElementSibling))e=e.nextElementSibling;else for(e=e.nextSibling;e&&1!=e.nodeType;)e=e.nextSibling;d=new Y(d,e,!1);this.Nb.push(d)}this.nc=new Ud(this.Nb,nb(document,b))};Vd.prototype.oc=function(){return this.nc};Vd.prototype.pc=function(){return this.Nb}; | |
+var Ud=function(a,b){this.Ta=a;if(this.Ta.length){a=0;for(var c;c=this.Ta[a];a++)K(c,"toggle",this.Nc,!1,this)}this.hb=0;this.l=!1;a="ae-toggle ae-plus ae-action";this.Ta.length||(a+=" ae-disabled");this.Z=sb("SPAN",{className:a},"Expand All");K(this.Z,"click",this.lc,!1,this);b&&b.appendChild(this.Z)};Ud.prototype.lc=function(){this.Ta.length&&this.W(!this.l)}; | |
+Ud.prototype.Nc=function(a){a=a.currentTarget;a.l?this.hb+=1:--this.hb;a.l!=this.l&&(a.l?(this.l=!0,Wd(this,!0)):0==this.hb&&(this.l=!1,Wd(this,!1)))};Ud.prototype.W=function(a){this.l=a;a=0;for(var b;b=this.Ta[a];a++)b.l!=this.l&&b.W(this.l);Wd(this)}; | |
+var Wd=function(a,b){(m(b)?b:a.l)?(Hb(a.Z,"ae-plus"),Fb(a.Z,"ae-minus"),wb(a.Z,"Collapse All")):(Hb(a.Z,"ae-minus"),Fb(a.Z,"ae-plus"),wb(a.Z,"Expand All"))},Xd=function(a){this.Mc=a;this.$b={};var b,c=sb("DIV",{},b=sb("DIV",{id:"ae-stats-details-tabs",className:"goog-tab-bar goog-tab-bar-top"}),sb("DIV",{className:"goog-tab-bar-clear"}),a=sb("DIV",{id:"ae-stats-details-tabs-content",className:"goog-tab-content"})),d=new X;d.X(b);K(d,"select",this.Qb,!1,this);K(d,"unselect",this.Qb,!1,this);b=0;for(var e;e= | |
+this.Mc[b];b++)if(e=nb(document,"ae-stats-details-"+e)){var g=ob("h2",null,e)[0];var h=g;if(jb&&null!==h&&"innerText"in h)h=h.innerText.replace(/(\r\n|\r|\n)/g,"\n");else{var k=[];Db(h,k,!0);h=k.join("")}h=h.replace(/ \xAD /g," ").replace(/\xAD/g,"");h=h.replace(/\u200B/g,"");jb||(h=h.replace(/ +/g," "));" "!=h&&(h=h.replace(/^\s*/,""));ub(g);g=new Md(h);this.$b[ha(g)]=e;d.Ua(g,!0);a.appendChild(e);0==b?d.ja(g):Pc(e,!1)}nb(document,"bd").appendChild(c)}; | |
+Xd.prototype.Qb=function(a){var b=this.$b[ha(a.target)];Pc(b,"select"==a.type)};ma("ae.Stats.Details.Tabs",Xd);ma("goog.ui.Zippy",Y);Y.prototype.setExpanded=Y.prototype.W;ma("ae.Stats.MakeZippys",Vd);Vd.prototype.getExpandCollapse=Vd.prototype.oc;Vd.prototype.getZippys=Vd.prototype.pc;Ud.prototype.setExpanded=Ud.prototype.W;var Z=function(){this.qb=[];this.Fb=[]},Yd=[[5,.2,1],[6,.2,1.2],[5,.25,1.25],[6,.25,1.5],[4,.5,2],[5,.5,2.5],[6,.5,3],[4,1,4],[5,1,5],[6,1,6],[4,2,8],[5,2,10]],Zd=function(a){if(0>=a)return[2,.5,1];for(var b=1;1>a;)a*=10,b/=10;for(;10<=a;)a/=10,b*=10;for(var c=0;c<Yd.length;c++)if(a<=Yd[c][2])return[Yd[c][0],Yd[c][1]*b,Yd[c][2]*b];return[5,2*b,10*b]};Z.prototype.nb="stats/static/pix.gif";Z.prototype.H="ae-stats-gantt-";Z.prototype.zb=0;Z.prototype.write=function(a){this.Fb.push(a)}; | |
+var $d=function(a,b,c,d){a.write('<tr class="'+a.H+'axisrow"><td width="20%"></td><td>');a.write('<div class="'+a.H+'axis">');for(var e=0;e<=b;e++)a.write('<img class="'+a.H+'tick" src="'+a.nb+'" alt="" '),a.write('style="left:'+e*c*d+'%"\n>'),a.write('<span class="'+a.H+'scale" style="left:'+e*c*d+'%">'),a.write(" "+e*c+"</span>");a.write("</div></td></tr>\n")}; | |
+Z.prototype.mc=function(){this.Fb=[];var a=Zd(this.zb),b=a[0],c=a[1];a=100/a[2];this.write('<table class="'+this.H+'table">\n');$d(this,b,c,a);for(var d=0;d<this.qb.length;d++){var e=this.qb[d];this.write('<tr class="'+this.H+'datarow"><td width="20%">');0<e.label.length&&(0<e.za.length&&this.write('<a class="'+this.H+'link" href="'+e.za+'">'),this.write(e.label),0<e.za.length&&this.write("</a>"));this.write("</td>\n<td>");this.write('<div class="'+this.H+'container">');0<e.za.length&&this.write('<a class="'+ | |
+this.H+'link" href="'+e.za+'"\n>');this.write('<img class="'+this.H+'bar" src="'+this.nb+'" alt="" ');this.write('style="left:'+e.start*a+"%;width:"+e.duration*a+'%;min-width:1px"\n>');0<e.sb&&(this.write('<img class="'+this.H+'extra" src="'+this.nb+'" alt="" '),this.write('style="left:'+e.start*a+"%;width:"+e.sb*a+'%"\n>'));0<e.Sb.length&&(this.write('<span class="'+this.H+'inline" style="left:'+(e.start+Math.max(e.duration,e.sb))*a+'%"> '),this.write(e.Sb),this.write("</span>"));0<e.za.length&& | |
+this.write("</a>");this.write("</div></td></tr>\n")}$d(this,b,c,a);this.write("</table>\n");return this.Fb.join("")};Z.prototype.hc=function(a,b,c,d,e,g){this.zb=Math.max(this.zb,Math.max(b+c,b+d));this.qb.push({label:a,start:b,duration:c,sb:d,Sb:e,za:g})};ma("Gantt",Z);Z.prototype.add_bar=Z.prototype.hc;Z.prototype.draw=Z.prototype.mc;})(); | |
diff -u -r 1.9.69/google_appengine/google/appengine/ext/datastore_admin/backup_handler.py 1.9.70/google_appengine/google/appengine/ext/datastore_admin/backup_handler.py | |
--- 1.9.69/google_appengine/google/appengine/ext/datastore_admin/backup_handler.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/ext/datastore_admin/backup_handler.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -53,9 +53,15 @@ | |
import urllib | |
import xml.dom.minidom | |
-from google.appengine.datastore import entity_pb | |
- | |
from google.appengine._internal import cloudstorage | |
+from google.appengine._internal.mapreduce import context | |
+from google.appengine._internal.mapreduce import datastore_range_iterators as db_iters | |
+from google.appengine._internal.mapreduce import input_readers | |
+from google.appengine._internal.mapreduce import json_util | |
+from google.appengine._internal.mapreduce import operation as op | |
+from google.appengine._internal.mapreduce import output_writers | |
+from google.appengine._internal.mapreduce import parameters | |
+from google.appengine._internal.mapreduce import records | |
from google.appengine.api import apiproxy_stub_map | |
from google.appengine.api import app_identity | |
from google.appengine.api import blobstore as blobstore_api | |
@@ -65,44 +71,16 @@ | |
from google.appengine.api import taskqueue | |
from google.appengine.api import urlfetch | |
from google.appengine.api.taskqueue import taskqueue_service_pb | |
+from google.appengine.datastore import entity_pb | |
from google.appengine.ext import blobstore | |
from google.appengine.ext import db | |
from google.appengine.ext import deferred | |
from google.appengine.ext import webapp | |
+from google.appengine.runtime import apiproxy_errors | |
from google.appengine.ext.datastore_admin import backup_pb2 | |
from google.appengine.ext.datastore_admin import config | |
from google.appengine.ext.datastore_admin import utils | |
-from google.appengine.runtime import apiproxy_errors | |
- | |
-try: | |
- | |
- from google.appengine.ext.mapreduce import context | |
- from google.appengine.ext.mapreduce import datastore_range_iterators as db_iters | |
- from google.appengine.ext.mapreduce import input_readers | |
- from google.appengine.ext.mapreduce import json_util | |
- from google.appengine.ext.mapreduce import operation as op | |
- from google.appengine.ext.mapreduce import output_writers | |
- from google.appengine.ext.mapreduce import parameters | |
- from google.appengine.ext.mapreduce import records | |
-except ImportError: | |
- | |
- from google.appengine._internal.mapreduce import context | |
- from google.appengine._internal.mapreduce import datastore_range_iterators as db_iters | |
- from google.appengine._internal.mapreduce import input_readers | |
- from google.appengine._internal.mapreduce import json_util | |
- from google.appengine._internal.mapreduce import operation as op | |
- from google.appengine._internal.mapreduce import output_writers | |
- from google.appengine._internal.mapreduce import parameters | |
- from google.appengine._internal.mapreduce import records | |
- | |
- | |
-try: | |
- | |
- from google.appengine.ext.datastore_admin import services_client | |
-except ImportError: | |
- | |
- pass | |
XSRF_ACTION = 'backup' | |
BUCKET_PATTERN = (r'^([a-zA-Z0-9]+([\-_]+[a-zA-Z0-9]+)*)' | |
@@ -655,22 +633,10 @@ | |
INPUT_READER = __name__ + '.DatastoreEntityProtoInputReader' | |
if run_as_a_service: | |
- if not gcs_path_prefix: | |
- | |
- | |
- raise BackupValidationError('Bucket name missing.') | |
- bucket_name, path_prefix = validate_and_split_gcs_path(gcs_path_prefix) | |
- datastore_admin_service = services_client.DatastoreAdminClient() | |
- description = 'Remote backup job: %s' % backup | |
- | |
- | |
- | |
- | |
- canonical_gcs_prefix = ('%s/%s' % (bucket_name, path_prefix)).rstrip('/') | |
- remote_job_id = datastore_admin_service.create_backup( | |
- description, backup, canonical_gcs_prefix, selected_namespace, kinds) | |
- return [('remote_job', remote_job_id)] | |
+ raise BackupValidationError( | |
+ 'Please use the Managed Import/Export service. ' | |
+ 'https://cloud.google.com/datastore/docs/export-import-entities') | |
queue = queue or os.environ.get('HTTP_X_APPENGINE_QUEUENAME', 'default') | |
if queue[0] == '_': | |
@@ -1006,12 +972,7 @@ | |
for backup_info in db.get(backup_ids): | |
if backup_info: | |
operation = backup_info.parent() | |
- if operation.parent_key(): | |
- job_id = str(operation.parent_key()) | |
- datastore_admin_service = services_client.DatastoreAdminClient() | |
- datastore_admin_service.abort_backup(job_id) | |
- else: | |
- utils.AbortAdminOperation(operation.key()) | |
+ utils.AbortAdminOperation(operation.key()) | |
delete_backup_info(backup_info) | |
except Exception, e: | |
logging.exception('Failed to abort pending datastore backup.') | |
@@ -1040,13 +1001,9 @@ | |
raise ValueError('Backup does not have kind[s] %s' % ', '.join(difference)) | |
if run_as_a_service: | |
- if backup.filesystem != FILES_API_GS_FILESYSTEM: | |
- raise ValueError('Restore as a service is only available for GS backups') | |
- datastore_admin_service = services_client.DatastoreAdminClient() | |
- description = 'Remote restore job: %s' % backup.name | |
- remote_job_id = datastore_admin_service.restore_from_backup( | |
- description, backup_id, list(kinds)) | |
- return ('remote_job', remote_job_id) | |
+ raise ValueError( | |
+ 'Please use the Managed Import/Export service. ' | |
+ 'https://cloud.google.com/datastore/docs/export-import-entities') | |
job_name = 'datastore_backup_restore_%s' % re.sub(r'[^\w]', '_', | |
backup.name) | |
diff -u -r 1.9.69/google_appengine/google/appengine/ext/datastore_admin/delete_handler.py 1.9.70/google_appengine/google/appengine/ext/datastore_admin/delete_handler.py | |
--- 1.9.69/google_appengine/google/appengine/ext/datastore_admin/delete_handler.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/ext/datastore_admin/delete_handler.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -29,6 +29,9 @@ | |
import re | |
import urllib | |
+from google.appengine._internal.mapreduce import input_readers | |
+from google.appengine._internal.mapreduce import model | |
+from google.appengine._internal.mapreduce import operation | |
from google.appengine.api import capabilities | |
from google.appengine.api import datastore | |
from google.appengine.ext import webapp | |
@@ -36,18 +39,6 @@ | |
from google.appengine.ext.datastore_admin import utils | |
-try: | |
- | |
- from google.appengine.ext.mapreduce import model | |
- from google.appengine.ext.mapreduce import input_readers | |
- from google.appengine.ext.mapreduce import operation | |
-except ImportError: | |
- | |
- from google.appengine._internal.mapreduce import model | |
- from google.appengine._internal.mapreduce import input_readers | |
- from google.appengine._internal.mapreduce import operation | |
- | |
- | |
MAPREDUCE_OBJECTS = [model.MapreduceState.kind(), | |
model.ShardState.kind()] | |
XSRF_ACTION = 'delete' | |
diff -u -r 1.9.69/google_appengine/google/appengine/ext/datastore_admin/main.py 1.9.70/google_appengine/google/appengine/ext/datastore_admin/main.py | |
--- 1.9.69/google_appengine/google/appengine/ext/datastore_admin/main.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/ext/datastore_admin/main.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -36,13 +36,13 @@ | |
from google.appengine.api import users | |
from google.appengine.ext import deferred | |
from google.appengine.ext import webapp | |
+from google.appengine.ext.db import stats | |
+from google.appengine.ext.webapp import util | |
+from google.appengine.runtime import apiproxy_errors | |
from google.appengine.ext.datastore_admin import backup_handler | |
from google.appengine.ext.datastore_admin import config | |
from google.appengine.ext.datastore_admin import delete_handler | |
from google.appengine.ext.datastore_admin import utils | |
-from google.appengine.ext.db import stats | |
-from google.appengine.ext.webapp import util | |
-from google.appengine.runtime import apiproxy_errors | |
diff -u -r 1.9.69/google_appengine/google/appengine/ext/datastore_admin/utils.py 1.9.70/google_appengine/google/appengine/ext/datastore_admin/utils.py | |
--- 1.9.69/google_appengine/google/appengine/ext/datastore_admin/utils.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/ext/datastore_admin/utils.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -29,12 +29,17 @@ | |
import random | |
import time | |
-from google.appengine.datastore import entity_pb | |
+from google.appengine._internal.mapreduce import context | |
+from google.appengine._internal.mapreduce import control | |
+from google.appengine._internal.mapreduce import model | |
+from google.appengine._internal.mapreduce import operation as mr_operation | |
+from google.appengine._internal.mapreduce import util | |
from google.appengine.api import datastore | |
from google.appengine.api import datastore_errors | |
from google.appengine.api import memcache | |
from google.appengine.api import users | |
from google.appengine.datastore import datastore_rpc | |
+from google.appengine.datastore import entity_pb | |
from google.appengine.ext import db | |
from google.appengine.ext import webapp | |
from google.appengine.ext.datastore_admin import config | |
@@ -44,22 +49,6 @@ | |
from google.appengine.runtime import apiproxy_errors | |
-try: | |
- | |
- from google.appengine.ext.mapreduce import context | |
- from google.appengine.ext.mapreduce import control | |
- from google.appengine.ext.mapreduce import model | |
- from google.appengine.ext.mapreduce import operation as mr_operation | |
- from google.appengine.ext.mapreduce import util | |
-except ImportError: | |
- | |
- from google.appengine._internal.mapreduce import context | |
- from google.appengine._internal.mapreduce import control | |
- from google.appengine._internal.mapreduce import model | |
- from google.appengine._internal.mapreduce import operation as mr_operation | |
- from google.appengine._internal.mapreduce import util | |
- | |
- | |
MEMCACHE_NAMESPACE = '_ah-datastore_admin' | |
XSRF_VALIDITY_TIME = 600 | |
KINDS_AND_SIZES_VAR = 'kinds_and_sizes' | |
@@ -343,7 +332,7 @@ | |
return datastore_rpc.Configuration(force_writes=True, deadline=60) | |
-def GenerateHomeUrl(request): | |
+def GenerateHomeUrl(unused_request): | |
"""Generates a link to the Datastore Admin main page. | |
Primarily intended to be used for cancel buttons or links on error pages. To | |
@@ -351,16 +340,13 @@ | |
user-defined strings (unless proper precautions are taken). | |
Args: | |
- request: the webapp.Request object (to determine if certain query | |
+ unused_request: the webapp.Request object (to determine if certain query | |
parameters need to be used). | |
Returns: | |
domain-relative URL for the main Datastore Admin page. | |
""" | |
- datastore_admin_home = config.BASE_PATH | |
- if request and request.get('run_as_a_service'): | |
- datastore_admin_home += '?run_as_a_service=True' | |
- return datastore_admin_home | |
+ return config.BASE_PATH | |
class MapreduceDoneHandler(webapp.RequestHandler): | |
@@ -527,14 +513,10 @@ | |
mapreduce_params['done_callback_queue'] = queue_name | |
mapreduce_params['force_writes'] = 'True' | |
- def tx(is_xg_transaction): | |
+ @db.transactional(xg=True) | |
+ def tx(): | |
"""Start MapReduce job and update datastore admin state. | |
- Args: | |
- is_xg_transaction: True if we are running inside a xg-enabled | |
- transaction, else False if we are running inside a non-xg-enabled | |
- transaction (which means the datastore admin state is updated in one | |
- transaction and the MapReduce job in an indepedent transaction). | |
Returns: | |
result MapReduce job id as a string. | |
""" | |
@@ -545,7 +527,7 @@ | |
mapreduce_parameters=mapreduce_params, | |
base_path=config.MAPREDUCE_PATH, | |
shard_count=shard_count, | |
- in_xg_transaction=is_xg_transaction, | |
+ in_xg_transaction=True, | |
queue_name=queue_name) | |
operation = DatastoreAdminOperation.get(operation_key) | |
operation.status = DatastoreAdminOperation.STATUS_ACTIVE | |
@@ -554,8 +536,7 @@ | |
operation.put(config=_CreateDatastoreConfig()) | |
return job_id | |
- return db.run_in_transaction_options( | |
- db.create_transaction_options(xg=True), tx, True) | |
+ return tx() | |
def RunMapForKinds(operation_key, | |
diff -u -r 1.9.69/google_appengine/google/appengine/ext/mapreduce/handlers.py 1.9.70/google_appengine/google/appengine/ext/mapreduce/handlers.py | |
--- 1.9.69/google_appengine/google/appengine/ext/mapreduce/handlers.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/ext/mapreduce/handlers.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -46,10 +46,13 @@ | |
import traceback | |
import simplejson | |
+from google.appengine.datastore import entity_pb | |
from google.appengine.ext import ndb | |
from google.appengine import runtime | |
+from google.appengine.api import datastore | |
from google.appengine.api import datastore_errors | |
+from google.appengine.api import datastore_types | |
from google.appengine.api import logservice | |
from google.appengine.api import modules | |
from google.appengine.api import taskqueue | |
@@ -128,6 +131,39 @@ | |
return False | |
+def _calculate_last_work_item(data): | |
+ """Calculates the last work item processed. | |
+ | |
+ Args: | |
+ data: a single data item being processed. | |
+ Returns: | |
+ A stringified version of the data item. | |
+ """ | |
+ | |
+ try: | |
+ if isinstance(data, db.Model): | |
+ data = data.key() | |
+ elif isinstance(data, ndb.Model): | |
+ data = data.key | |
+ elif isinstance(data, datastore.Entity): | |
+ data = data.key() | |
+ elif isinstance(data, entity_pb.EntityProto): | |
+ data = datastore_types.Key._FromPb(data.key()) | |
+ elif isinstance(data, entity_pb.Reference): | |
+ data = datastore_types.Key._FromPb(data) | |
+ elif isinstance(data, datastore.Key): | |
+ | |
+ pass | |
+ else: | |
+ | |
+ return repr(data)[:100] | |
+ return repr(data) | |
+ except (ValueError, UnicodeDecodeError): | |
+ | |
+ | |
+ return str(data)[:100] | |
+ | |
+ | |
class MapperWorkerCallbackHandler(base_handler.HugeTaskHandler): | |
"""Callback handler for mapreduce worker task.""" | |
@@ -601,16 +637,7 @@ | |
- if isinstance(entity, db.Model): | |
- shard_state.last_work_item = repr(entity.key()) | |
- elif isinstance(entity, ndb.Model): | |
- shard_state.last_work_item = repr(entity.key) | |
- else: | |
- try: | |
- shard_state.last_work_item = repr(entity)[:100] | |
- except UnicodeDecodeError: | |
- logging.warning("Failed to decode datum.") | |
- shard_state.last_work_item = str(entity)[:100] | |
+ shard_state.last_work_item = _calculate_last_work_item(entity) | |
processing_limit -= 1 | |
diff -u -r 1.9.69/google_appengine/google/appengine/runtime/runtime.py 1.9.70/google_appengine/google/appengine/runtime/runtime.py | |
--- 1.9.69/google_appengine/google/appengine/runtime/runtime.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/runtime/runtime.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -188,6 +188,8 @@ | |
environ['SERVER_NAME'] = url.hostname | |
if url.path: | |
environ['PATH_INFO'] = urlparse.unquote(url.path) | |
+ environ['REQUEST_URI'] = url.path | |
else: | |
environ['PATH_INFO'] = '/' | |
+ environ['REQUEST_URI'] = '/' | |
return environ | |
diff -u -r 1.9.69/google_appengine/google/appengine/tools/dev-channel-js.js 1.9.70/google_appengine/google/appengine/tools/dev-channel-js.js | |
--- 1.9.69/google_appengine/google/appengine/tools/dev-channel-js.js 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/tools/dev-channel-js.js 2018-05-29 11:47:31.000000000 -0700 | |
@@ -72,14 +72,31 @@ | |
goog.DISALLOW_TEST_ONLY_CODE = !goog.DEBUG; | |
goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING = !1; | |
goog.provide = function(name) { | |
- if (goog.isInModuleLoader_()) { | |
- throw Error("goog.provide can not be used within a module."); | |
+ if (goog.isInGoogModuleLoader_()) { | |
+ throw Error("goog.provide cannot be used within a module."); | |
} | |
+ goog.isInEs6ModuleLoader_() && goog.logToConsole_("goog.provide should not be used within a module."); | |
goog.constructNamespace_(name); | |
}; | |
goog.constructNamespace_ = function(name, opt_obj) { | |
goog.exportPath_(name, opt_obj); | |
}; | |
+goog.getScriptNonce = function() { | |
+ null === goog.cspNonce_ && (goog.cspNonce_ = goog.getScriptNonce_(goog.global.document) || ""); | |
+ return goog.cspNonce_; | |
+}; | |
+goog.NONCE_PATTERN_ = /^[\w+/_-]+[=]{0,2}$/; | |
+goog.cspNonce_ = null; | |
+goog.getScriptNonce_ = function(doc) { | |
+ var script = doc.querySelector("script[nonce]"); | |
+ if (script) { | |
+ var nonce = script.nonce || script.getAttribute("nonce"); | |
+ if (nonce && goog.NONCE_PATTERN_.test(nonce)) { | |
+ return nonce; | |
+ } | |
+ } | |
+ return null; | |
+}; | |
goog.VALID_MODULE_RE_ = /^[a-zA-Z_$][a-zA-Z0-9._$]*$/; | |
goog.module = function(name) { | |
if (!goog.isString(name) || !name || -1 == name.search(goog.VALID_MODULE_RE_)) { | |
@@ -108,7 +125,12 @@ | |
return !!goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.GOOG; | |
}; | |
goog.isInEs6ModuleLoader_ = function() { | |
- return !!goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.ES6; | |
+ var inLoader = !!goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.ES6; | |
+ if (inLoader) { | |
+ return !0; | |
+ } | |
+ var jscomp = goog.global.$jscomp; | |
+ return jscomp ? "function" != typeof jscomp.getCurrentModulePath ? !1 : !!jscomp.getCurrentModulePath() : !1; | |
}; | |
goog.getModulePath_ = function() { | |
return goog.moduleLoaderState_ && goog.moduleLoaderState_.path; | |
@@ -147,13 +169,13 @@ | |
goog.isPath_ = function(requireOrPath) { | |
return 0 == requireOrPath.indexOf("./") || 0 == requireOrPath.indexOf("../"); | |
}; | |
-goog.require = function(name) { | |
- if (goog.isPath_(name)) { | |
+goog.require = function(nameOrPath) { | |
+ if (goog.isPath_(nameOrPath)) { | |
if (goog.isInGoogModuleLoader_()) { | |
if (!goog.getModulePath_()) { | |
throw Error("Current module has no path information. Was it loaded via goog.loadModule without a path argument?"); | |
} | |
- goog.normalizePath_(goog.getModulePath_() + "/../" + name); | |
+ goog.normalizePath_(goog.getModulePath_() + "/../" + nameOrPath); | |
} else { | |
throw Error("Cannot require by path outside of goog.modules."); | |
} | |
@@ -2764,7 +2786,7 @@ | |
return result; | |
}; | |
goog.html.SafeStyle.sanitizePropertyValueString_ = function(value) { | |
- var valueWithoutFunctions = value.replace(goog.html.SafeUrl.FUNCTIONS_RE_, "$1").replace(goog.html.SafeUrl.URL_RE_, "url"); | |
+ var valueWithoutFunctions = value.replace(goog.html.SafeStyle.FUNCTIONS_RE_, "$1").replace(goog.html.SafeStyle.URL_RE_, "url"); | |
return goog.html.SafeStyle.VALUE_RE_.test(valueWithoutFunctions) ? goog.html.SafeStyle.hasBalancedQuotes_(value) ? goog.html.SafeStyle.sanitizeUrl_(value) : (goog.asserts.fail("String value requires balanced quotes, got: " + value), goog.html.SafeStyle.INNOCUOUS_STRING) : (goog.asserts.fail("String value allows only " + goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ + " and simple functions, got: " + value), goog.html.SafeStyle.INNOCUOUS_STRING); | |
}; | |
goog.html.SafeStyle.hasBalancedQuotes_ = function(value) { | |
@@ -2776,10 +2798,10 @@ | |
}; | |
goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ = "[-,.\"'%_!# a-zA-Z0-9]"; | |
goog.html.SafeStyle.VALUE_RE_ = new RegExp("^" + goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ + "+$"); | |
-goog.html.SafeUrl.URL_RE_ = /\b(url\([ \t\n]*)('[ -&(-\[\]-~]*'|"[ !#-\[\]-~]*"|[!#-&*-\[\]-~]*)([ \t\n]*\))/g; | |
-goog.html.SafeUrl.FUNCTIONS_RE_ = /\b(hsl|hsla|rgb|rgba|(rotate|scale|translate)(X|Y|Z|3d)?)\([-0-9a-z.%, ]+\)/g; | |
+goog.html.SafeStyle.URL_RE_ = /\b(url\([ \t\n]*)('[ -&(-\[\]-~]*'|"[ !#-\[\]-~]*"|[!#-&*-\[\]-~]*)([ \t\n]*\))/g; | |
+goog.html.SafeStyle.FUNCTIONS_RE_ = /\b(hsl|hsla|rgb|rgba|matrix|(rotate|scale|translate)(X|Y|Z|3d)?)\([-0-9a-z.%, ]+\)/g; | |
goog.html.SafeStyle.sanitizeUrl_ = function(value) { | |
- return value.replace(goog.html.SafeUrl.URL_RE_, function(match$jscomp$0, before, url, after) { | |
+ return value.replace(goog.html.SafeStyle.URL_RE_, function(match$jscomp$0, before, url, after) { | |
var quote = ""; | |
url = url.replace(/^(['"])(.*)\1$/, function(match, start, inside) { | |
quote = start; | |
@@ -3185,10 +3207,14 @@ | |
goog.dom.safe.setScriptSrc = function(script, url) { | |
goog.dom.asserts.assertIsHTMLScriptElement(script); | |
script.src = goog.html.TrustedResourceUrl.unwrap(url); | |
+ var nonce = goog.getScriptNonce(); | |
+ nonce && (script.nonce = nonce); | |
}; | |
goog.dom.safe.setScriptContent = function(script, content) { | |
goog.dom.asserts.assertIsHTMLScriptElement(script); | |
script.text = goog.html.SafeScript.unwrap(content); | |
+ var nonce = goog.getScriptNonce(); | |
+ nonce && (script.nonce = nonce); | |
}; | |
goog.dom.safe.setLocationHref = function(loc, url) { | |
goog.dom.asserts.assertIsLocation(loc); | |
@@ -5167,7 +5193,7 @@ | |
}; | |
goog.events = {}; | |
$jscomp.scope.purify = function(fn) { | |
- return fn(); | |
+ return {valueOf:fn}.valueOf(); | |
}; | |
goog.events.BrowserFeature = {HAS_W3C_BUTTON:!goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9), HAS_W3C_EVENT_SUPPORT:!goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9), SET_KEY_CODE_TO_PREVENT_DEFAULT:goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("9"), HAS_NAVIGATOR_ONLINE_PROPERTY:!goog.userAgent.WEBKIT || goog.userAgent.isVersionOrHigher("528"), HAS_HTML5_NETWORK_EVENT_SUPPORT:goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher("1.9b") || goog.userAgent.IE && | |
goog.userAgent.isVersionOrHigher("8") || goog.userAgent.OPERA && goog.userAgent.isVersionOrHigher("9.5") || goog.userAgent.WEBKIT && goog.userAgent.isVersionOrHigher("528"), HTML5_NETWORK_EVENTS_FIRE_ON_BODY:goog.userAgent.GECKO && !goog.userAgent.isVersionOrHigher("8") || goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("9"), TOUCH_ENABLED:"ontouchstart" in goog.global || !!(goog.global.document && document.documentElement && "ontouchstart" in document.documentElement) || !(!goog.global.navigator || | |
@@ -5210,21 +5236,22 @@ | |
goog.events.getVendorPrefixedName_ = function(eventName) { | |
return goog.userAgent.WEBKIT ? "webkit" + eventName : goog.userAgent.OPERA ? "o" + eventName.toLowerCase() : eventName.toLowerCase(); | |
}; | |
-goog.events.EventType = {CLICK:"click", RIGHTCLICK:"rightclick", DBLCLICK:"dblclick", MOUSEDOWN:"mousedown", MOUSEUP:"mouseup", MOUSEOVER:"mouseover", MOUSEOUT:"mouseout", MOUSEMOVE:"mousemove", MOUSEENTER:"mouseenter", MOUSELEAVE:"mouseleave", SELECTIONCHANGE:"selectionchange", SELECTSTART:"selectstart", WHEEL:"wheel", KEYPRESS:"keypress", KEYDOWN:"keydown", KEYUP:"keyup", BLUR:"blur", FOCUS:"focus", DEACTIVATE:"deactivate", FOCUSIN:"focusin", FOCUSOUT:"focusout", CHANGE:"change", RESET:"reset", | |
-SELECT:"select", SUBMIT:"submit", INPUT:"input", PROPERTYCHANGE:"propertychange", DRAGSTART:"dragstart", DRAG:"drag", DRAGENTER:"dragenter", DRAGOVER:"dragover", DRAGLEAVE:"dragleave", DROP:"drop", DRAGEND:"dragend", TOUCHSTART:"touchstart", TOUCHMOVE:"touchmove", TOUCHEND:"touchend", TOUCHCANCEL:"touchcancel", BEFOREUNLOAD:"beforeunload", CONSOLEMESSAGE:"consolemessage", CONTEXTMENU:"contextmenu", DEVICECHANGE:"devicechange", DEVICEMOTION:"devicemotion", DEVICEORIENTATION:"deviceorientation", DOMCONTENTLOADED:"DOMContentLoaded", | |
-ERROR:"error", HELP:"help", LOAD:"load", LOSECAPTURE:"losecapture", ORIENTATIONCHANGE:"orientationchange", READYSTATECHANGE:"readystatechange", RESIZE:"resize", SCROLL:"scroll", UNLOAD:"unload", CANPLAY:"canplay", CANPLAYTHROUGH:"canplaythrough", DURATIONCHANGE:"durationchange", EMPTIED:"emptied", ENDED:"ended", LOADEDDATA:"loadeddata", LOADEDMETADATA:"loadedmetadata", PAUSE:"pause", PLAY:"play", PLAYING:"playing", RATECHANGE:"ratechange", SEEKED:"seeked", SEEKING:"seeking", STALLED:"stalled", SUSPEND:"suspend", | |
-TIMEUPDATE:"timeupdate", VOLUMECHANGE:"volumechange", WAITING:"waiting", SOURCEOPEN:"sourceopen", SOURCEENDED:"sourceended", SOURCECLOSED:"sourceclosed", ABORT:"abort", UPDATE:"update", UPDATESTART:"updatestart", UPDATEEND:"updateend", HASHCHANGE:"hashchange", PAGEHIDE:"pagehide", PAGESHOW:"pageshow", POPSTATE:"popstate", COPY:"copy", PASTE:"paste", CUT:"cut", BEFORECOPY:"beforecopy", BEFORECUT:"beforecut", BEFOREPASTE:"beforepaste", ONLINE:"online", OFFLINE:"offline", MESSAGE:"message", CONNECT:"connect", | |
-INSTALL:"install", ACTIVATE:"activate", FETCH:"fetch", FOREIGNFETCH:"foreignfetch", MESSAGEERROR:"messageerror", STATECHANGE:"statechange", UPDATEFOUND:"updatefound", CONTROLLERCHANGE:"controllerchange", ANIMATIONSTART:goog.events.getVendorPrefixedName_("AnimationStart"), ANIMATIONEND:goog.events.getVendorPrefixedName_("AnimationEnd"), ANIMATIONITERATION:goog.events.getVendorPrefixedName_("AnimationIteration"), TRANSITIONEND:goog.events.getVendorPrefixedName_("TransitionEnd"), POINTERDOWN:"pointerdown", | |
-POINTERUP:"pointerup", POINTERCANCEL:"pointercancel", POINTERMOVE:"pointermove", POINTEROVER:"pointerover", POINTEROUT:"pointerout", POINTERENTER:"pointerenter", POINTERLEAVE:"pointerleave", GOTPOINTERCAPTURE:"gotpointercapture", LOSTPOINTERCAPTURE:"lostpointercapture", MSGESTURECHANGE:"MSGestureChange", MSGESTUREEND:"MSGestureEnd", MSGESTUREHOLD:"MSGestureHold", MSGESTURESTART:"MSGestureStart", MSGESTURETAP:"MSGestureTap", MSGOTPOINTERCAPTURE:"MSGotPointerCapture", MSINERTIASTART:"MSInertiaStart", | |
+goog.events.EventType = {CLICK:"click", RIGHTCLICK:"rightclick", DBLCLICK:"dblclick", MOUSEDOWN:"mousedown", MOUSEUP:"mouseup", MOUSEOVER:"mouseover", MOUSEOUT:"mouseout", MOUSEMOVE:"mousemove", MOUSEENTER:"mouseenter", MOUSELEAVE:"mouseleave", MOUSECANCEL:"mousecancel", SELECTIONCHANGE:"selectionchange", SELECTSTART:"selectstart", WHEEL:"wheel", KEYPRESS:"keypress", KEYDOWN:"keydown", KEYUP:"keyup", BLUR:"blur", FOCUS:"focus", DEACTIVATE:"deactivate", FOCUSIN:"focusin", FOCUSOUT:"focusout", CHANGE:"change", | |
+RESET:"reset", SELECT:"select", SUBMIT:"submit", INPUT:"input", PROPERTYCHANGE:"propertychange", DRAGSTART:"dragstart", DRAG:"drag", DRAGENTER:"dragenter", DRAGOVER:"dragover", DRAGLEAVE:"dragleave", DROP:"drop", DRAGEND:"dragend", TOUCHSTART:"touchstart", TOUCHMOVE:"touchmove", TOUCHEND:"touchend", TOUCHCANCEL:"touchcancel", BEFOREUNLOAD:"beforeunload", CONSOLEMESSAGE:"consolemessage", CONTEXTMENU:"contextmenu", DEVICECHANGE:"devicechange", DEVICEMOTION:"devicemotion", DEVICEORIENTATION:"deviceorientation", | |
+DOMCONTENTLOADED:"DOMContentLoaded", ERROR:"error", HELP:"help", LOAD:"load", LOSECAPTURE:"losecapture", ORIENTATIONCHANGE:"orientationchange", READYSTATECHANGE:"readystatechange", RESIZE:"resize", SCROLL:"scroll", UNLOAD:"unload", CANPLAY:"canplay", CANPLAYTHROUGH:"canplaythrough", DURATIONCHANGE:"durationchange", EMPTIED:"emptied", ENDED:"ended", LOADEDDATA:"loadeddata", LOADEDMETADATA:"loadedmetadata", PAUSE:"pause", PLAY:"play", PLAYING:"playing", RATECHANGE:"ratechange", SEEKED:"seeked", SEEKING:"seeking", | |
+STALLED:"stalled", SUSPEND:"suspend", TIMEUPDATE:"timeupdate", VOLUMECHANGE:"volumechange", WAITING:"waiting", SOURCEOPEN:"sourceopen", SOURCEENDED:"sourceended", SOURCECLOSED:"sourceclosed", ABORT:"abort", UPDATE:"update", UPDATESTART:"updatestart", UPDATEEND:"updateend", HASHCHANGE:"hashchange", PAGEHIDE:"pagehide", PAGESHOW:"pageshow", POPSTATE:"popstate", COPY:"copy", PASTE:"paste", CUT:"cut", BEFORECOPY:"beforecopy", BEFORECUT:"beforecut", BEFOREPASTE:"beforepaste", ONLINE:"online", OFFLINE:"offline", | |
+MESSAGE:"message", CONNECT:"connect", INSTALL:"install", ACTIVATE:"activate", FETCH:"fetch", FOREIGNFETCH:"foreignfetch", MESSAGEERROR:"messageerror", STATECHANGE:"statechange", UPDATEFOUND:"updatefound", CONTROLLERCHANGE:"controllerchange", ANIMATIONSTART:goog.events.getVendorPrefixedName_("AnimationStart"), ANIMATIONEND:goog.events.getVendorPrefixedName_("AnimationEnd"), ANIMATIONITERATION:goog.events.getVendorPrefixedName_("AnimationIteration"), TRANSITIONEND:goog.events.getVendorPrefixedName_("TransitionEnd"), | |
+POINTERDOWN:"pointerdown", POINTERUP:"pointerup", POINTERCANCEL:"pointercancel", POINTERMOVE:"pointermove", POINTEROVER:"pointerover", POINTEROUT:"pointerout", POINTERENTER:"pointerenter", POINTERLEAVE:"pointerleave", GOTPOINTERCAPTURE:"gotpointercapture", LOSTPOINTERCAPTURE:"lostpointercapture", MSGESTURECHANGE:"MSGestureChange", MSGESTUREEND:"MSGestureEnd", MSGESTUREHOLD:"MSGestureHold", MSGESTURESTART:"MSGestureStart", MSGESTURETAP:"MSGestureTap", MSGOTPOINTERCAPTURE:"MSGotPointerCapture", MSINERTIASTART:"MSInertiaStart", | |
MSLOSTPOINTERCAPTURE:"MSLostPointerCapture", MSPOINTERCANCEL:"MSPointerCancel", MSPOINTERDOWN:"MSPointerDown", MSPOINTERENTER:"MSPointerEnter", MSPOINTERHOVER:"MSPointerHover", MSPOINTERLEAVE:"MSPointerLeave", MSPOINTERMOVE:"MSPointerMove", MSPOINTEROUT:"MSPointerOut", MSPOINTEROVER:"MSPointerOver", MSPOINTERUP:"MSPointerUp", TEXT:"text", TEXTINPUT:goog.userAgent.IE ? "textinput" : "textInput", COMPOSITIONSTART:"compositionstart", COMPOSITIONUPDATE:"compositionupdate", COMPOSITIONEND:"compositionend", | |
BEFOREINPUT:"beforeinput", EXIT:"exit", LOADABORT:"loadabort", LOADCOMMIT:"loadcommit", LOADREDIRECT:"loadredirect", LOADSTART:"loadstart", LOADSTOP:"loadstop", RESPONSIVE:"responsive", SIZECHANGED:"sizechanged", UNRESPONSIVE:"unresponsive", VISIBILITYCHANGE:"visibilitychange", STORAGE:"storage", DOMSUBTREEMODIFIED:"DOMSubtreeModified", DOMNODEINSERTED:"DOMNodeInserted", DOMNODEREMOVED:"DOMNodeRemoved", DOMNODEREMOVEDFROMDOCUMENT:"DOMNodeRemovedFromDocument", DOMNODEINSERTEDINTODOCUMENT:"DOMNodeInsertedIntoDocument", | |
DOMATTRMODIFIED:"DOMAttrModified", DOMCHARACTERDATAMODIFIED:"DOMCharacterDataModified", BEFOREPRINT:"beforeprint", AFTERPRINT:"afterprint", BEFOREINSTALLPROMPT:"beforeinstallprompt", APPINSTALLED:"appinstalled"}; | |
goog.events.getPointerFallbackEventName_ = function(pointerEventName, msPointerEventName, mouseEventName) { | |
return goog.events.BrowserFeature.POINTER_EVENTS ? pointerEventName : goog.events.BrowserFeature.MSPOINTER_EVENTS ? msPointerEventName : mouseEventName; | |
}; | |
-goog.events.PointerFallbackEventType = {POINTERDOWN:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTERDOWN, goog.events.EventType.MSPOINTERDOWN, goog.events.EventType.MOUSEDOWN), POINTERUP:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTERUP, goog.events.EventType.MSPOINTERUP, goog.events.EventType.MOUSEUP), POINTERCANCEL:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTERCANCEL, goog.events.EventType.MSPOINTERCANCEL, "mousecancel"), POINTERMOVE:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTERMOVE, | |
-goog.events.EventType.MSPOINTERMOVE, goog.events.EventType.MOUSEMOVE), POINTEROVER:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTEROVER, goog.events.EventType.MSPOINTEROVER, goog.events.EventType.MOUSEOVER), POINTEROUT:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTEROUT, goog.events.EventType.MSPOINTEROUT, goog.events.EventType.MOUSEOUT), POINTERENTER:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTERENTER, goog.events.EventType.MSPOINTERENTER, | |
-goog.events.EventType.MOUSEENTER), POINTERLEAVE:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTERLEAVE, goog.events.EventType.MSPOINTERLEAVE, goog.events.EventType.MOUSELEAVE)}; | |
+goog.events.PointerFallbackEventType = {POINTERDOWN:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTERDOWN, goog.events.EventType.MSPOINTERDOWN, goog.events.EventType.MOUSEDOWN), POINTERUP:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTERUP, goog.events.EventType.MSPOINTERUP, goog.events.EventType.MOUSEUP), POINTERCANCEL:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTERCANCEL, goog.events.EventType.MSPOINTERCANCEL, goog.events.EventType.MOUSECANCEL), | |
+POINTERMOVE:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTERMOVE, goog.events.EventType.MSPOINTERMOVE, goog.events.EventType.MOUSEMOVE), POINTEROVER:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTEROVER, goog.events.EventType.MSPOINTEROVER, goog.events.EventType.MOUSEOVER), POINTEROUT:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTEROUT, goog.events.EventType.MSPOINTEROUT, goog.events.EventType.MOUSEOUT), POINTERENTER:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTERENTER, | |
+goog.events.EventType.MSPOINTERENTER, goog.events.EventType.MOUSEENTER), POINTERLEAVE:goog.events.getPointerFallbackEventName_(goog.events.EventType.POINTERLEAVE, goog.events.EventType.MSPOINTERLEAVE, goog.events.EventType.MOUSELEAVE)}; | |
+goog.events.PointerAsMouseEventType = {MOUSEDOWN:goog.events.PointerFallbackEventType.POINTERDOWN, MOUSEUP:goog.events.PointerFallbackEventType.POINTERUP, MOUSECANCEL:goog.events.PointerFallbackEventType.POINTERCANCEL, MOUSEMOVE:goog.events.PointerFallbackEventType.POINTERMOVE, MOUSEOVER:goog.events.PointerFallbackEventType.POINTEROVER, MOUSEOUT:goog.events.PointerFallbackEventType.POINTEROUT, MOUSEENTER:goog.events.PointerFallbackEventType.POINTERENTER, MOUSELEAVE:goog.events.PointerFallbackEventType.POINTERLEAVE}; | |
goog.events.BrowserEvent = function(opt_e, opt_currentTarget) { | |
goog.events.Event.call(this, opt_e ? opt_e.type : ""); | |
this.relatedTarget = this.currentTarget = this.target = null; | |
@@ -7744,7 +7771,6 @@ | |
"", !0), this.setUserInfo(m[goog.uri.utils.ComponentIndex.USER_INFO] || "", !0), this.setDomain(m[goog.uri.utils.ComponentIndex.DOMAIN] || "", !0), this.setPort(m[goog.uri.utils.ComponentIndex.PORT]), this.setPath(m[goog.uri.utils.ComponentIndex.PATH] || "", !0), this.setQueryData(m[goog.uri.utils.ComponentIndex.QUERY_DATA] || "", !0), this.setFragment(m[goog.uri.utils.ComponentIndex.FRAGMENT] || "", !0)) : (this.ignoreCase_ = !!opt_ignoreCase, this.queryData_ = new goog.Uri.QueryData(null, null, | |
this.ignoreCase_)); | |
}; | |
-goog.Uri.preserveParameterTypesCompatibilityFlag = !1; | |
goog.Uri.RANDOM_PARAM = goog.uri.utils.StandardQueryParam.RANDOM; | |
goog.Uri.prototype.toString = function() { | |
var out = [], scheme = this.getScheme(); | |
@@ -8078,8 +8104,11 @@ | |
return this; | |
}; | |
goog.Uri.QueryData.prototype.get = function(key, opt_default) { | |
- var values = key ? this.getValues(key) : []; | |
- return goog.Uri.preserveParameterTypesCompatibilityFlag ? 0 < values.length ? values[0] : opt_default : 0 < values.length ? String(values[0]) : opt_default; | |
+ if (!key) { | |
+ return opt_default; | |
+ } | |
+ var values = this.getValues(key); | |
+ return 0 < values.length ? String(values[0]) : opt_default; | |
}; | |
goog.Uri.QueryData.prototype.setValues = function(key, values) { | |
this.remove(key); | |
diff -u -r 1.9.69/google_appengine/google/appengine/tools/devappserver2/cli_parser.py 1.9.70/google_appengine/google/appengine/tools/devappserver2/cli_parser.py | |
--- 1.9.69/google_appengine/google/appengine/tools/devappserver2/cli_parser.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/tools/devappserver2/cli_parser.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -570,7 +570,7 @@ | |
'--enable_watching_go_path', | |
action=boolean_action.BooleanAction, | |
const=True, | |
- default=True, | |
+ default=False, | |
restrict_configuration=[DEV_APPSERVER_CONFIGURATION], | |
help='Enable watching $GOPATH for go app dependency changes. If file ' | |
'watcher complains about too many files to watch, you can set it to ' | |
diff -u -r 1.9.69/google_appengine/google/appengine/tools/devappserver2/devappserver2.py 1.9.70/google_appengine/google/appengine/tools/devappserver2/devappserver2.py | |
--- 1.9.69/google_appengine/google/appengine/tools/devappserver2/devappserver2.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/tools/devappserver2/devappserver2.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -160,7 +160,7 @@ | |
{module.runtime for module in configuration.modules}, | |
{module.env or 'standard' for module in configuration.modules}, | |
options.support_datastore_emulator, datastore_data_type, | |
- bool(ssl_certificate_paths)) | |
+ bool(ssl_certificate_paths), options) | |
self._dispatcher = dispatcher.Dispatcher( | |
configuration, options.host, options.port, options.auth_domain, | |
diff -u -r 1.9.69/google_appengine/google/appengine/tools/devappserver2/go/goroots.py 1.9.70/google_appengine/google/appengine/tools/devappserver2/go/goroots.py | |
--- 1.9.69/google_appengine/google/appengine/tools/devappserver2/go/goroots.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/tools/devappserver2/go/goroots.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -17,7 +17,7 @@ | |
"""A simple mapping of go versions to goroot directories.""" | |
GOROOTS = { | |
- 'go1': 'goroot-1.8', | |
+ 'go1': 'goroot-1.9', | |
'go1.6': 'goroot-1.6', | |
'go1.8': 'goroot-1.8', | |
'go1.9': 'goroot-1.9', | |
diff -u -r 1.9.69/google_appengine/google/appengine/tools/devappserver2/metrics.py 1.9.70/google_appengine/google/appengine/tools/devappserver2/metrics.py | |
--- 1.9.69/google_appengine/google/appengine/tools/devappserver2/metrics.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/tools/devappserver2/metrics.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -100,6 +100,7 @@ | |
'SupportDatastoreEmulator': 'cd10', | |
'DatastoreDataType': 'cd11', | |
'UseSsl': 'cd12', | |
+ 'CmdArgs': 'cd13', | |
} | |
# Devappserver Google Analytics Custom Metrics. | |
@@ -131,13 +132,14 @@ | |
self._support_datastore_emulator = None | |
self._datastore_data_type = None | |
self._use_ssl = False | |
+ self._cmd_args = None | |
# Stores events for batch logging once Stop has been called. | |
self._log_once_on_stop_events = {} | |
def Start(self, client_id, user_agent=None, runtimes=None, environment=None, | |
support_datastore_emulator=None, datastore_data_type=None, | |
- use_ssl=False): | |
+ use_ssl=False, cmd_args=None): | |
"""Starts a Google Analytics session for the current client. | |
Args: | |
@@ -150,6 +152,8 @@ | |
datastore_data_type: A string representing the type of data for local | |
datastore file. | |
use_ssl: A boolean indicating whether SSL was enabled. | |
+ cmd_args: An argparse.Namespace object representing commandline arguments | |
+ passed to dev_appserver. | |
""" | |
self._client_id = client_id | |
self._user_agent = user_agent | |
@@ -159,6 +163,7 @@ | |
self._support_datastore_emulator = support_datastore_emulator | |
self._datastore_data_type = datastore_data_type | |
self._use_ssl = use_ssl | |
+ self._cmd_args = json.dumps(vars(cmd_args)) if cmd_args else None | |
self.Log(DEVAPPSERVER_CATEGORY, START_ACTION) | |
self._start_time = Now() | |
@@ -285,6 +290,7 @@ | |
GOOGLE_ANALYTICS_DIMENSIONS[ | |
'DatastoreDataType']: self._datastore_data_type, | |
GOOGLE_ANALYTICS_DIMENSIONS['UseSsl']: self._use_ssl, | |
+ GOOGLE_ANALYTICS_DIMENSIONS['CmdArgs']: self._cmd_args, | |
# Required event data | |
'ec': category, | |
'ea': action | |
diff -u -r 1.9.69/google_appengine/google/appengine/tools/devappserver2/module.py 1.9.70/google_appengine/google/appengine/tools/devappserver2/module.py | |
--- 1.9.69/google_appengine/google/appengine/tools/devappserver2/module.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/tools/devappserver2/module.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -907,7 +907,9 @@ | |
if match: | |
# Only check secure: if module was configured to run with SSL | |
if self._ssl_port: | |
- if (handler.url_map.secure == 'always' and | |
+ handler_secure = getattr(getattr(handler, '_url_map', None), | |
+ 'secure', None) | |
+ if (handler_secure == 'always' and | |
environ['wsgi.url_scheme'] != 'https'): | |
# Since secure: was set to 'always', redirect to the https | |
# version of the url | |
@@ -918,7 +920,7 @@ | |
include_query_params=True, | |
port=self._ssl_port))]) | |
return [] | |
- elif (handler.url_map.secure == 'never' and | |
+ elif (handler_secure == 'never' and | |
environ['wsgi.url_scheme'] != 'http'): | |
# Since secure: was set to 'never', redirect to the http version | |
# of the url, but without the query params | |
diff -u -r 1.9.69/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py 1.9.70/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py | |
--- 1.9.69/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py 2018-05-29 11:47:31.000000000 -0700 | |
@@ -202,6 +202,7 @@ | |
_ThirdPartyCModule('numpy', r'numpy(\..*)?$'), | |
_ThirdPartyCModule('ujson', r'ujson(\..*)?$'), | |
_ThirdPartyCModule('grpcio', r'grpc(\..*)?$', import_name='grpc'), | |
+ _ThirdPartyCModule('protobuf', r'google.protobuf(\..*)?$'), | |
_ThirdPartyCModule( | |
'PIL', r'(PIL(\..*)?|_imaging|_imagingft|_imagingmath)$'), | |
_ThirdPartyCModule('pytz', r'pytz(\..*)?$'), | |
diff -u -r 1.9.69/google_appengine/google/appengine/tools/value_mixin.py 1.9.70/google_appengine/google/appengine/tools/value_mixin.py | |
--- 1.9.69/google_appengine/google/appengine/tools/value_mixin.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/appengine/tools/value_mixin.py 2018-05-29 11:47:32.000000000 -0700 | |
@@ -20,6 +20,8 @@ | |
based on the values of fields. | |
""" | |
+from __future__ import unicode_literals | |
+ | |
class ValueMixin(object): | |
def __cmp__(self, other): | |
@@ -35,7 +37,7 @@ | |
return 1 | |
def __hash__(self): | |
- return hash(frozenset(self.__dict__.items())) | |
+ return hash(frozenset(list(self.__dict__.items()))) | |
def __repr__(self): | |
diff -u -r 1.9.69/google_appengine/google/net/proto2/python/internal/api_implementation.py 1.9.70/google_appengine/google/net/proto2/python/internal/api_implementation.py | |
--- 1.9.69/google_appengine/google/net/proto2/python/internal/api_implementation.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/net/proto2/python/internal/api_implementation.py 2018-05-29 11:47:32.000000000 -0700 | |
@@ -152,9 +152,6 @@ | |
else: | |
_python_proto3_preserve_unknowns_default = True | |
- _python_proto3_preserve_unknowns_default = False | |
- | |
- | |
def GetPythonProto3PreserveUnknownsDefault(): | |
return _python_proto3_preserve_unknowns_default | |
diff -u -r 1.9.69/google_appengine/google/net/proto2/python/internal/descriptor_bootstrap_pb2.py 1.9.70/google_appengine/google/net/proto2/python/internal/descriptor_bootstrap_pb2.py | |
--- 1.9.69/google_appengine/google/net/proto2/python/internal/descriptor_bootstrap_pb2.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/net/proto2/python/internal/descriptor_bootstrap_pb2.py 2018-05-29 11:47:32.000000000 -0700 | |
@@ -36,7 +36,7 @@ | |
package='proto2', | |
syntax='proto2', | |
serialized_options=None, | |
- serialized_pb=_b('\n!net/proto2/proto/descriptor.proto\x12\x06proto2\">\n\x11\x46ileDescriptorSet\x12)\n\x04\x66ile\x18\x01 \x03(\x0b\x32\x1b.proto2.FileDescriptorProto\"\xa5\x03\n\x13\x46ileDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07package\x18\x02 \x01(\t\x12\x12\n\ndependency\x18\x03 \x03(\t\x12\x19\n\x11public_dependency\x18\n \x03(\x05\x12\x17\n\x0fweak_dependency\x18\x0b \x03(\x05\x12-\n\x0cmessage_type\x18\x04 \x03(\x0b\x32\x17.proto2.DescriptorProto\x12.\n\tenum_type\x18\x05 \x03(\x0b\x32\x1b.proto2.EnumDescriptorProto\x12/\n\x07service\x18\x06 \x03(\x0b\x32\x1e.proto2.ServiceDescriptorProto\x12/\n\textension\x18\x07 \x03(\x0b\x32\x1c.proto2.FieldDescriptorProto\x12$\n\x07options\x18\x08 \x01(\x0b\x32\x13.proto2.FileOptions\x12\x30\n\x10source_code_info\x18\t \x01(\x0b\x32\x16.proto2.SourceCodeInfo\x12\x0e\n\x06syntax\x18\x0c \x01(\t\"\xd8\x04\n\x0f\x44\x65scriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12+\n\x05\x66ield\x18\x02 \x03(\x0b\x32\x1c.proto2.FieldDescriptorProto\x12/\n\textension\x18\x06 \x03(\x0b\x32\x1c.proto2.FieldDescriptorProto\x12,\n\x0bnested_type\x18\x03 \x03(\x0b\x32\x17.proto2.DescriptorProto\x12.\n\tenum_type\x18\x04 \x03(\x0b\x32\x1b.proto2.EnumDescriptorProto\x12?\n\x0f\x65xtension_range\x18\x05 \x03(\x0b\x32&.proto2.DescriptorProto.ExtensionRange\x12\x30\n\noneof_decl\x18\x08 \x03(\x0b\x32\x1c.proto2.OneofDescriptorProto\x12\'\n\x07options\x18\x07 \x01(\x0b\x32\x16.proto2.MessageOptions\x12=\n\x0ereserved_range\x18\t \x03(\x0b\x32%.proto2.DescriptorProto.ReservedRange\x12\x15\n\rreserved_name\x18\n \x03(\t\x1a\\\n\x0e\x45xtensionRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\x12.\n\x07options\x18\x03 \x01(\x0b\x32\x1d.proto2.ExtensionRangeOptions\x1a+\n\rReservedRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\"^\n\x15\x45xtensionRangeOptions\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xa1\x05\n\x14\x46ieldDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x03 \x01(\x05\x12\x31\n\x05label\x18\x04 \x01(\x0e\x32\".proto2.FieldDescriptorProto.Label\x12/\n\x04type\x18\x05 \x01(\x0e\x32!.proto2.FieldDescriptorProto.Type\x12\x11\n\ttype_name\x18\x06 \x01(\t\x12\x10\n\x08\x65xtendee\x18\x02 \x01(\t\x12\x15\n\rdefault_value\x18\x07 \x01(\t\x12\x13\n\x0boneof_index\x18\t \x01(\x05\x12\x11\n\tjson_name\x18\n \x01(\t\x12%\n\x07options\x18\x08 \x01(\x0b\x32\x14.proto2.FieldOptions\"\xb6\x02\n\x04Type\x12\x0f\n\x0bTYPE_DOUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\n\nTYPE_INT64\x10\x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_INT32\x10\x05\x12\x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED32\x10\x07\x12\r\n\tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\x0e\n\nTYPE_GROUP\x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTYPE_BYTES\x10\x0c\x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\x0e\x12\x11\n\rTYPE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\x12\x0f\n\x0bTYPE_SINT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"C\n\x05Label\x12\x12\n\x0eLABEL_OPTIONAL\x10\x01\x12\x12\n\x0eLABEL_REQUIRED\x10\x02\x12\x12\n\x0eLABEL_REPEATED\x10\x03\"K\n\x14OneofDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x07options\x18\x02 \x01(\x0b\x32\x14.proto2.OneofOptions\"\x89\x02\n\x13\x45numDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x03(\x0b\x32 .proto2.EnumValueDescriptorProto\x12$\n\x07options\x18\x03 \x01(\x0b\x32\x13.proto2.EnumOptions\x12\x45\n\x0ereserved_range\x18\x04 \x03(\x0b\x32-.proto2.EnumDescriptorProto.EnumReservedRange\x12\x15\n\rreserved_name\x18\x05 \x03(\t\x1a/\n\x11\x45numReservedRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\"c\n\x18\x45numValueDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\x05\x12)\n\x07options\x18\x03 \x01(\x0b\x32\x18.proto2.EnumValueOptions\"\xad\x01\n\x16ServiceDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\x06method\x18\x02 \x03(\x0b\x32\x1d.proto2.MethodDescriptorProto\x12-\n\x06stream\x18\x04 \x03(\x0b\x32\x1d.proto2.StreamDescriptorProto\x12\'\n\x07options\x18\x03 \x01(\x0b\x32\x16.proto2.ServiceOptions\"\xb8\x01\n\x15MethodDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ninput_type\x18\x02 \x01(\t\x12\x13\n\x0boutput_type\x18\x03 \x01(\t\x12&\n\x07options\x18\x04 \x01(\x0b\x32\x15.proto2.MethodOptions\x12\x1f\n\x10\x63lient_streaming\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x10server_streaming\x18\x06 \x01(\x08:\x05\x66\x61lse\"\x87\x01\n\x15StreamDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1b\n\x13\x63lient_message_type\x18\x02 \x01(\t\x12\x1b\n\x13server_message_type\x18\x03 \x01(\t\x12&\n\x07options\x18\x04 \x01(\x0b\x32\x15.proto2.StreamOptions\"\xdf\t\n\x0b\x46ileOptions\x12\x19\n\x0e\x63\x63_api_version\x18\x02 \x01(\x05:\x01\x32\x12\"\n\x14\x63\x63_utf8_verification\x18\x18 \x01(\x08:\x04true\x12\x14\n\x0cjava_package\x18\x01 \x01(\t\x12\x19\n\x0epy_api_version\x18\x04 \x01(\x05:\x01\x32\x12\x1b\n\x10java_api_version\x18\x05 \x01(\x05:\x01\x32\x12!\n\x13java_use_javaproto2\x18\x06 \x01(\x08:\x04true\x12\x1e\n\x10java_java5_enums\x18\x07 \x01(\x08:\x04true\x12#\n\x14java_use_javastrings\x18\x15 \x01(\x08:\x05\x66\x61lse\x12\x1c\n\x14java_alt_api_package\x18\x13 \x01(\t\x12\x34\n%java_enable_dual_generate_mutable_api\x18\x1a \x01(\x08:\x05\x66\x61lse\x12\x1c\n\x14java_outer_classname\x18\x08 \x01(\t\x12\"\n\x13java_multiple_files\x18\n \x01(\x08:\x05\x66\x61lse\x12%\n\x16java_string_check_utf8\x18\x1b \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x10java_mutable_api\x18\x1c \x01(\x08:\x05\x66\x61lse\x12+\n#java_multiple_files_mutable_package\x18\x1d \x01(\t\x12=\n\x0coptimize_for\x18\t \x01(\x0e\x32 .proto2.FileOptions.OptimizeMode:\x05SPEED\x12\x12\n\ngo_package\x18\x0b \x01(\t\x12\x1a\n\x12javascript_package\x18\x0c \x01(\t\x12\x1a\n\x0fszl_api_version\x18\x0e \x01(\x05:\x01\x31\x12\"\n\x13\x63\x63_generic_services\x18\x10 \x01(\x08:\x05\x66\x61lse\x12$\n\x15java_generic_services\x18\x11 \x01(\x08:\x05\x66\x61lse\x12\"\n\x13py_generic_services\x18\x12 \x01(\x08:\x05\x66\x61lse\x12#\n\x14php_generic_services\x18* \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndeprecated\x18\x17 \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x10\x63\x63_enable_arenas\x18\x1f \x01(\x08:\x05\x66\x61lse\x12\x19\n\x11objc_class_prefix\x18$ \x01(\t\x12\x18\n\x10\x63sharp_namespace\x18% \x01(\t\x12\x14\n\x0cswift_prefix\x18\' \x01(\t\x12\x18\n\x10php_class_prefix\x18( \x01(\t\x12\x15\n\rphp_namespace\x18) \x01(\t\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption\"A\n\x12\x43ompatibilityLevel\x12\x14\n\x10NO_COMPATIBILITY\x10\x00\x12\x15\n\x11PROTO1_COMPATIBLE\x10\x64\":\n\x0cOptimizeMode\x12\t\n\x05SPEED\x10\x01\x12\r\n\tCODE_SIZE\x10\x02\x12\x10\n\x0cLITE_RUNTIME\x10\x03*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x0f\x10\x10J\x04\x08\x16\x10\x17J\x04\x08\x19\x10\x1aJ\x04\x08\r\x10\x0eJ\x04\x08 \x10!J\x04\x08!\x10\"J\x04\x08\"\x10#J\x04\x08#\x10$J\x04\x08&\x10\'\"\xf0\x02\n\x0eMessageOptions\x12+\n#experimental_java_message_interface\x18\x04 \x03(\t\x12+\n#experimental_java_builder_interface\x18\x05 \x03(\t\x12+\n#experimental_java_interface_extends\x18\x06 \x03(\t\x12&\n\x17message_set_wire_format\x18\x01 \x01(\x08:\x05\x66\x61lse\x12.\n\x1fno_standard_descriptor_accessor\x18\x02 \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndeprecated\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x11\n\tmap_entry\x18\x07 \x01(\x08\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x08\x10\tJ\x04\x08\t\x10\n\"\xb3\x04\n\x0c\x46ieldOptions\x12\x31\n\x05\x63type\x18\x01 \x01(\x0e\x32\x1a.proto2.FieldOptions.CType:\x06STRING\x12\x0e\n\x06packed\x18\x02 \x01(\x08\x12\x36\n\x06jstype\x18\x06 \x01(\x0e\x32\x1b.proto2.FieldOptions.JSType:\tJS_NORMAL\x12\x13\n\x04lazy\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndeprecated\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x13\n\x04weak\x18\n \x01(\x08:\x05\x66\x61lse\x12<\n\x0fupgraded_option\x18\x0b \x03(\x0b\x32#.proto2.FieldOptions.UpgradedOption\x12%\n\x16\x64\x65precated_raw_message\x18\x0c \x01(\x08:\x05\x66\x61lse\x12\x1a\n\x0c\x65nforce_utf8\x18\r \x01(\x08:\x04true\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption\x1a-\n\x0eUpgradedOption\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"/\n\x05\x43Type\x12\n\n\x06STRING\x10\x00\x12\x08\n\x04\x43ORD\x10\x01\x12\x10\n\x0cSTRING_PIECE\x10\x02\"5\n\x06JSType\x12\r\n\tJS_NORMAL\x10\x00\x12\r\n\tJS_STRING\x10\x01\x12\r\n\tJS_NUMBER\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05\"U\n\x0cOneofOptions\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xa5\x01\n\x0b\x45numOptions\x12\x13\n\x0bproto1_name\x18\x01 \x01(\t\x12\x13\n\x0b\x61llow_alias\x18\x02 \x01(\x08\x12\x19\n\ndeprecated\x18\x03 \x01(\x08:\x05\x66\x61lse\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06\"t\n\x10\x45numValueOptions\x12\x19\n\ndeprecated\x18\x01 \x01(\x08:\x05\x66\x61lse\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xb6\x01\n\x0eServiceOptions\x12\x1d\n\x0emulticast_stub\x18\x14 \x01(\x08:\x05\x66\x61lse\x12#\n\x17\x66\x61ilure_detection_delay\x18\x10 \x01(\x01:\x02-1\x12\x19\n\ndeprecated\x18! \x01(\x08:\x05\x66\x61lse\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x82\x0c\n\rMethodOptions\x12\x35\n\x08protocol\x18\x07 \x01(\x0e\x32\x1e.proto2.MethodOptions.Protocol:\x03TCP\x12\x14\n\x08\x64\x65\x61\x64line\x18\x08 \x01(\x01:\x02-1\x12$\n\x15\x64uplicate_suppression\x18\t \x01(\x08:\x05\x66\x61lse\x12\x18\n\tfail_fast\x18\n \x01(\x08:\x05\x66\x61lse\x12\'\n\x18\x65nd_user_creds_requested\x18\x1a \x01(\x08:\x05\x66\x61lse\x12\x1b\n\x0e\x63lient_logging\x18\x0b \x01(\x11:\x03\x32\x35\x36\x12\x1b\n\x0eserver_logging\x18\x0c \x01(\x11:\x03\x32\x35\x36\x12\x41\n\x0esecurity_level\x18\r \x01(\x0e\x32#.proto2.MethodOptions.SecurityLevel:\x04NONE\x12\x43\n\x0fresponse_format\x18\x0f \x01(\x0e\x32\x1c.proto2.MethodOptions.Format:\x0cUNCOMPRESSED\x12\x42\n\x0erequest_format\x18\x11 \x01(\x0e\x32\x1c.proto2.MethodOptions.Format:\x0cUNCOMPRESSED\x12\x13\n\x0bstream_type\x18\x12 \x01(\t\x12\x16\n\x0esecurity_label\x18\x13 \x01(\t\x12\x18\n\x10\x63lient_streaming\x18\x14 \x01(\x08\x12\x18\n\x10server_streaming\x18\x15 \x01(\x08\x12\x1a\n\x12legacy_stream_type\x18\x16 \x01(\t\x12\x1a\n\x12legacy_result_type\x18\x17 \x01(\t\x12\x1d\n\x15go_legacy_channel_api\x18\x1d \x01(\x08\x12(\n\x1clegacy_client_initial_tokens\x18\x18 \x01(\x03:\x02-1\x12(\n\x1clegacy_server_initial_tokens\x18\x19 \x01(\x03:\x02-1\x12@\n\x11legacy_token_unit\x18\x1c \x01(\x0e\x32\x1f.proto2.MethodOptions.TokenUnit:\x04\x42YTE\x12^\n\tlog_level\x18\x1b \x01(\x0e\x32\x1e.proto2.MethodOptions.LogLevel:+LOG_HEADER_AND_NON_PRIVATE_PAYLOAD_INTERNAL\x12\x19\n\ndeprecated\x18! \x01(\x08:\x05\x66\x61lse\x12V\n\x11idempotency_level\x18\" \x01(\x0e\x32&.proto2.MethodOptions.IdempotencyLevel:\x13IDEMPOTENCY_UNKNOWN\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption\"\x1c\n\x08Protocol\x12\x07\n\x03TCP\x10\x00\x12\x07\n\x03UDP\x10\x01\"e\n\rSecurityLevel\x12\x08\n\x04NONE\x10\x00\x12\r\n\tINTEGRITY\x10\x01\x12\x19\n\x15PRIVACY_AND_INTEGRITY\x10\x02\x12 \n\x1cSTRONG_PRIVACY_AND_INTEGRITY\x10\x03\"0\n\x06\x46ormat\x12\x10\n\x0cUNCOMPRESSED\x10\x00\x12\x14\n\x10ZIPPY_COMPRESSED\x10\x01\"\x9f\x01\n\x08LogLevel\x12\x0c\n\x08LOG_NONE\x10\x00\x12\x13\n\x0fLOG_HEADER_ONLY\x10\x01\x12/\n+LOG_HEADER_AND_NON_PRIVATE_PAYLOAD_INTERNAL\x10\x02\x12#\n\x1fLOG_HEADER_AND_FILTERED_PAYLOAD\x10\x03\x12\x1a\n\x16LOG_HEADER_AND_PAYLOAD\x10\x04\"\"\n\tTokenUnit\x12\x0b\n\x07MESSAGE\x10\x00\x12\x08\n\x04\x42YTE\x10\x01\"P\n\x10IdempotencyLevel\x12\x17\n\x13IDEMPOTENCY_UNKNOWN\x10\x00\x12\x13\n\x0fNO_SIDE_EFFECTS\x10\x01\x12\x0e\n\nIDEMPOTENT\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xe7\x04\n\rStreamOptions\x12!\n\x15\x63lient_initial_tokens\x18\x01 \x01(\x03:\x02-1\x12!\n\x15server_initial_tokens\x18\x02 \x01(\x03:\x02-1\x12<\n\ntoken_unit\x18\x03 \x01(\x0e\x32\x1f.proto2.StreamOptions.TokenUnit:\x07MESSAGE\x12\x41\n\x0esecurity_level\x18\x04 \x01(\x0e\x32#.proto2.MethodOptions.SecurityLevel:\x04NONE\x12\x16\n\x0esecurity_label\x18\x05 \x01(\t\x12\x1b\n\x0e\x63lient_logging\x18\x06 \x01(\x05:\x03\x32\x35\x36\x12\x1b\n\x0eserver_logging\x18\x07 \x01(\x05:\x03\x32\x35\x36\x12\x14\n\x08\x64\x65\x61\x64line\x18\x08 \x01(\x01:\x02-1\x12\x18\n\tfail_fast\x18\t \x01(\x08:\x05\x66\x61lse\x12\'\n\x18\x65nd_user_creds_requested\x18\n \x01(\x08:\x05\x66\x61lse\x12^\n\tlog_level\x18\x0b \x01(\x0e\x32\x1e.proto2.MethodOptions.LogLevel:+LOG_HEADER_AND_NON_PRIVATE_PAYLOAD_INTERNAL\x12\x19\n\ndeprecated\x18! \x01(\x08:\x05\x66\x61lse\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption\"\"\n\tTokenUnit\x12\x0b\n\x07MESSAGE\x10\x00\x12\x08\n\x04\x42YTE\x10\x01*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x95\x02\n\x13UninterpretedOption\x12\x32\n\x04name\x18\x02 \x03(\x0b\x32$.proto2.UninterpretedOption.NamePart\x12\x18\n\x10identifier_value\x18\x03 \x01(\t\x12\x1a\n\x12positive_int_value\x18\x04 \x01(\x04\x12\x1a\n\x12negative_int_value\x18\x05 \x01(\x03\x12\x14\n\x0c\x64ouble_value\x18\x06 \x01(\x01\x12\x14\n\x0cstring_value\x18\x07 \x01(\x0c\x12\x17\n\x0f\x61ggregate_value\x18\x08 \x01(\t\x1a\x33\n\x08NamePart\x12\x11\n\tname_part\x18\x01 \x02(\t\x12\x14\n\x0cis_extension\x18\x02 \x02(\x08\"\xcc\x01\n\x0eSourceCodeInfo\x12\x31\n\x08location\x18\x01 \x03(\x0b\x32\x1f.proto2.SourceCodeInfo.Location\x1a\x86\x01\n\x08Location\x12\x10\n\x04path\x18\x01 \x03(\x05\x42\x02\x10\x01\x12\x10\n\x04span\x18\x02 \x03(\x05\x42\x02\x10\x01\x12\x18\n\x10leading_comments\x18\x03 \x01(\t\x12\x19\n\x11trailing_comments\x18\x04 \x01(\t\x12!\n\x19leading_detached_comments\x18\x06 \x03(\t\"\x9e\x01\n\x11GeneratedCodeInfo\x12\x38\n\nannotation\x18\x01 \x03(\x0b\x32$.proto2.GeneratedCodeInfo.Annotation\x1aO\n\nAnnotation\x12\x10\n\x04path\x18\x01 \x03(\x05\x42\x02\x10\x01\x12\x13\n\x0bsource_file\x18\x02 \x01(\t\x12\r\n\x05\x62\x65gin\x18\x03 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x04 \x01(\x05\x42\x92\x01\n\x13\x63om.google.protobufB\x10\x44\x65scriptorProtosH\x01Z>github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor\xe0\x01\x01\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1aGoogle.Protobuf.Reflection') | |
+ serialized_pb=_b('\n!net/proto2/proto/descriptor.proto\x12\x06proto2\">\n\x11\x46ileDescriptorSet\x12)\n\x04\x66ile\x18\x01 \x03(\x0b\x32\x1b.proto2.FileDescriptorProto\"\xa5\x03\n\x13\x46ileDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07package\x18\x02 \x01(\t\x12\x12\n\ndependency\x18\x03 \x03(\t\x12\x19\n\x11public_dependency\x18\n \x03(\x05\x12\x17\n\x0fweak_dependency\x18\x0b \x03(\x05\x12-\n\x0cmessage_type\x18\x04 \x03(\x0b\x32\x17.proto2.DescriptorProto\x12.\n\tenum_type\x18\x05 \x03(\x0b\x32\x1b.proto2.EnumDescriptorProto\x12/\n\x07service\x18\x06 \x03(\x0b\x32\x1e.proto2.ServiceDescriptorProto\x12/\n\textension\x18\x07 \x03(\x0b\x32\x1c.proto2.FieldDescriptorProto\x12$\n\x07options\x18\x08 \x01(\x0b\x32\x13.proto2.FileOptions\x12\x30\n\x10source_code_info\x18\t \x01(\x0b\x32\x16.proto2.SourceCodeInfo\x12\x0e\n\x06syntax\x18\x0c \x01(\t\"\xd8\x04\n\x0f\x44\x65scriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12+\n\x05\x66ield\x18\x02 \x03(\x0b\x32\x1c.proto2.FieldDescriptorProto\x12/\n\textension\x18\x06 \x03(\x0b\x32\x1c.proto2.FieldDescriptorProto\x12,\n\x0bnested_type\x18\x03 \x03(\x0b\x32\x17.proto2.DescriptorProto\x12.\n\tenum_type\x18\x04 \x03(\x0b\x32\x1b.proto2.EnumDescriptorProto\x12?\n\x0f\x65xtension_range\x18\x05 \x03(\x0b\x32&.proto2.DescriptorProto.ExtensionRange\x12\x30\n\noneof_decl\x18\x08 \x03(\x0b\x32\x1c.proto2.OneofDescriptorProto\x12\'\n\x07options\x18\x07 \x01(\x0b\x32\x16.proto2.MessageOptions\x12=\n\x0ereserved_range\x18\t \x03(\x0b\x32%.proto2.DescriptorProto.ReservedRange\x12\x15\n\rreserved_name\x18\n \x03(\t\x1a\\\n\x0e\x45xtensionRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\x12.\n\x07options\x18\x03 \x01(\x0b\x32\x1d.proto2.ExtensionRangeOptions\x1a+\n\rReservedRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\"^\n\x15\x45xtensionRangeOptions\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xa1\x05\n\x14\x46ieldDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x03 \x01(\x05\x12\x31\n\x05label\x18\x04 \x01(\x0e\x32\".proto2.FieldDescriptorProto.Label\x12/\n\x04type\x18\x05 \x01(\x0e\x32!.proto2.FieldDescriptorProto.Type\x12\x11\n\ttype_name\x18\x06 \x01(\t\x12\x10\n\x08\x65xtendee\x18\x02 \x01(\t\x12\x15\n\rdefault_value\x18\x07 \x01(\t\x12\x13\n\x0boneof_index\x18\t \x01(\x05\x12\x11\n\tjson_name\x18\n \x01(\t\x12%\n\x07options\x18\x08 \x01(\x0b\x32\x14.proto2.FieldOptions\"\xb6\x02\n\x04Type\x12\x0f\n\x0bTYPE_DOUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\n\nTYPE_INT64\x10\x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_INT32\x10\x05\x12\x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED32\x10\x07\x12\r\n\tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\x0e\n\nTYPE_GROUP\x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTYPE_BYTES\x10\x0c\x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\x0e\x12\x11\n\rTYPE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\x12\x0f\n\x0bTYPE_SINT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"C\n\x05Label\x12\x12\n\x0eLABEL_OPTIONAL\x10\x01\x12\x12\n\x0eLABEL_REQUIRED\x10\x02\x12\x12\n\x0eLABEL_REPEATED\x10\x03\"K\n\x14OneofDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x07options\x18\x02 \x01(\x0b\x32\x14.proto2.OneofOptions\"\x89\x02\n\x13\x45numDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x03(\x0b\x32 .proto2.EnumValueDescriptorProto\x12$\n\x07options\x18\x03 \x01(\x0b\x32\x13.proto2.EnumOptions\x12\x45\n\x0ereserved_range\x18\x04 \x03(\x0b\x32-.proto2.EnumDescriptorProto.EnumReservedRange\x12\x15\n\rreserved_name\x18\x05 \x03(\t\x1a/\n\x11\x45numReservedRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\"c\n\x18\x45numValueDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\x05\x12)\n\x07options\x18\x03 \x01(\x0b\x32\x18.proto2.EnumValueOptions\"\xad\x01\n\x16ServiceDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\x06method\x18\x02 \x03(\x0b\x32\x1d.proto2.MethodDescriptorProto\x12-\n\x06stream\x18\x04 \x03(\x0b\x32\x1d.proto2.StreamDescriptorProto\x12\'\n\x07options\x18\x03 \x01(\x0b\x32\x16.proto2.ServiceOptions\"\xb8\x01\n\x15MethodDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ninput_type\x18\x02 \x01(\t\x12\x13\n\x0boutput_type\x18\x03 \x01(\t\x12&\n\x07options\x18\x04 \x01(\x0b\x32\x15.proto2.MethodOptions\x12\x1f\n\x10\x63lient_streaming\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x10server_streaming\x18\x06 \x01(\x08:\x05\x66\x61lse\"\x87\x01\n\x15StreamDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1b\n\x13\x63lient_message_type\x18\x02 \x01(\t\x12\x1b\n\x13server_message_type\x18\x03 \x01(\t\x12&\n\x07options\x18\x04 \x01(\x0b\x32\x15.proto2.StreamOptions\"\xbb\t\n\x0b\x46ileOptions\x12\x19\n\x0e\x63\x63_api_version\x18\x02 \x01(\x05:\x01\x32\x12\"\n\x14\x63\x63_utf8_verification\x18\x18 \x01(\x08:\x04true\x12\x14\n\x0cjava_package\x18\x01 \x01(\t\x12\x19\n\x0epy_api_version\x18\x04 \x01(\x05:\x01\x32\x12\x1b\n\x10java_api_version\x18\x05 \x01(\x05:\x01\x32\x12!\n\x13java_use_javaproto2\x18\x06 \x01(\x08:\x04true\x12\x1e\n\x10java_java5_enums\x18\x07 \x01(\x08:\x04true\x12#\n\x14java_use_javastrings\x18\x15 \x01(\x08:\x05\x66\x61lse\x12\x1c\n\x14java_alt_api_package\x18\x13 \x01(\t\x12\x34\n%java_enable_dual_generate_mutable_api\x18\x1a \x01(\x08:\x05\x66\x61lse\x12\x1c\n\x14java_outer_classname\x18\x08 \x01(\t\x12\"\n\x13java_multiple_files\x18\n \x01(\x08:\x05\x66\x61lse\x12%\n\x16java_string_check_utf8\x18\x1b \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x10java_mutable_api\x18\x1c \x01(\x08:\x05\x66\x61lse\x12+\n#java_multiple_files_mutable_package\x18\x1d \x01(\t\x12=\n\x0coptimize_for\x18\t \x01(\x0e\x32 .proto2.FileOptions.OptimizeMode:\x05SPEED\x12\x12\n\ngo_package\x18\x0b \x01(\t\x12\x1a\n\x12javascript_package\x18\x0c \x01(\t\x12\x1a\n\x0fszl_api_version\x18\x0e \x01(\x05:\x01\x31\x12\"\n\x13\x63\x63_generic_services\x18\x10 \x01(\x08:\x05\x66\x61lse\x12$\n\x15java_generic_services\x18\x11 \x01(\x08:\x05\x66\x61lse\x12\"\n\x13py_generic_services\x18\x12 \x01(\x08:\x05\x66\x61lse\x12#\n\x14php_generic_services\x18* \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndeprecated\x18\x17 \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x10\x63\x63_enable_arenas\x18\x1f \x01(\x08:\x05\x66\x61lse\x12\x19\n\x11objc_class_prefix\x18$ \x01(\t\x12\x18\n\x10\x63sharp_namespace\x18% \x01(\t\x12\x14\n\x0cswift_prefix\x18\' \x01(\t\x12\x18\n\x10php_class_prefix\x18( \x01(\t\x12\x15\n\rphp_namespace\x18) \x01(\t\x12\x1d\n\x15use_cc_stubby_library\x18+ \x01(\x08\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption\":\n\x0cOptimizeMode\x12\t\n\x05SPEED\x10\x01\x12\r\n\tCODE_SIZE\x10\x02\x12\x10\n\x0cLITE_RUNTIME\x10\x03*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x0f\x10\x10J\x04\x08\x16\x10\x17J\x04\x08\x19\x10\x1aJ\x04\x08\r\x10\x0eJ\x04\x08 \x10!J\x04\x08!\x10\"J\x04\x08\"\x10#J\x04\x08#\x10$J\x04\x08&\x10\'\"\xf0\x02\n\x0eMessageOptions\x12+\n#experimental_java_message_interface\x18\x04 \x03(\t\x12+\n#experimental_java_builder_interface\x18\x05 \x03(\t\x12+\n#experimental_java_interface_extends\x18\x06 \x03(\t\x12&\n\x17message_set_wire_format\x18\x01 \x01(\x08:\x05\x66\x61lse\x12.\n\x1fno_standard_descriptor_accessor\x18\x02 \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndeprecated\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x11\n\tmap_entry\x18\x07 \x01(\x08\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x08\x10\tJ\x04\x08\t\x10\n\"\xb3\x04\n\x0c\x46ieldOptions\x12\x31\n\x05\x63type\x18\x01 \x01(\x0e\x32\x1a.proto2.FieldOptions.CType:\x06STRING\x12\x0e\n\x06packed\x18\x02 \x01(\x08\x12\x36\n\x06jstype\x18\x06 \x01(\x0e\x32\x1b.proto2.FieldOptions.JSType:\tJS_NORMAL\x12\x13\n\x04lazy\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndeprecated\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x13\n\x04weak\x18\n \x01(\x08:\x05\x66\x61lse\x12<\n\x0fupgraded_option\x18\x0b \x03(\x0b\x32#.proto2.FieldOptions.UpgradedOption\x12%\n\x16\x64\x65precated_raw_message\x18\x0c \x01(\x08:\x05\x66\x61lse\x12\x1a\n\x0c\x65nforce_utf8\x18\r \x01(\x08:\x04true\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption\x1a-\n\x0eUpgradedOption\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"/\n\x05\x43Type\x12\n\n\x06STRING\x10\x00\x12\x08\n\x04\x43ORD\x10\x01\x12\x10\n\x0cSTRING_PIECE\x10\x02\"5\n\x06JSType\x12\r\n\tJS_NORMAL\x10\x00\x12\r\n\tJS_STRING\x10\x01\x12\r\n\tJS_NUMBER\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05\"U\n\x0cOneofOptions\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xa5\x01\n\x0b\x45numOptions\x12\x13\n\x0bproto1_name\x18\x01 \x01(\t\x12\x13\n\x0b\x61llow_alias\x18\x02 \x01(\x08\x12\x19\n\ndeprecated\x18\x03 \x01(\x08:\x05\x66\x61lse\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06\"t\n\x10\x45numValueOptions\x12\x19\n\ndeprecated\x18\x01 \x01(\x08:\x05\x66\x61lse\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xb6\x01\n\x0eServiceOptions\x12\x1d\n\x0emulticast_stub\x18\x14 \x01(\x08:\x05\x66\x61lse\x12#\n\x17\x66\x61ilure_detection_delay\x18\x10 \x01(\x01:\x02-1\x12\x19\n\ndeprecated\x18! \x01(\x08:\x05\x66\x61lse\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x82\x0c\n\rMethodOptions\x12\x35\n\x08protocol\x18\x07 \x01(\x0e\x32\x1e.proto2.MethodOptions.Protocol:\x03TCP\x12\x14\n\x08\x64\x65\x61\x64line\x18\x08 \x01(\x01:\x02-1\x12$\n\x15\x64uplicate_suppression\x18\t \x01(\x08:\x05\x66\x61lse\x12\x18\n\tfail_fast\x18\n \x01(\x08:\x05\x66\x61lse\x12\'\n\x18\x65nd_user_creds_requested\x18\x1a \x01(\x08:\x05\x66\x61lse\x12\x1b\n\x0e\x63lient_logging\x18\x0b \x01(\x11:\x03\x32\x35\x36\x12\x1b\n\x0eserver_logging\x18\x0c \x01(\x11:\x03\x32\x35\x36\x12\x41\n\x0esecurity_level\x18\r \x01(\x0e\x32#.proto2.MethodOptions.SecurityLevel:\x04NONE\x12\x43\n\x0fresponse_format\x18\x0f \x01(\x0e\x32\x1c.proto2.MethodOptions.Format:\x0cUNCOMPRESSED\x12\x42\n\x0erequest_format\x18\x11 \x01(\x0e\x32\x1c.proto2.MethodOptions.Format:\x0cUNCOMPRESSED\x12\x13\n\x0bstream_type\x18\x12 \x01(\t\x12\x16\n\x0esecurity_label\x18\x13 \x01(\t\x12\x18\n\x10\x63lient_streaming\x18\x14 \x01(\x08\x12\x18\n\x10server_streaming\x18\x15 \x01(\x08\x12\x1a\n\x12legacy_stream_type\x18\x16 \x01(\t\x12\x1a\n\x12legacy_result_type\x18\x17 \x01(\t\x12\x1d\n\x15go_legacy_channel_api\x18\x1d \x01(\x08\x12(\n\x1clegacy_client_initial_tokens\x18\x18 \x01(\x03:\x02-1\x12(\n\x1clegacy_server_initial_tokens\x18\x19 \x01(\x03:\x02-1\x12@\n\x11legacy_token_unit\x18\x1c \x01(\x0e\x32\x1f.proto2.MethodOptions.TokenUnit:\x04\x42YTE\x12^\n\tlog_level\x18\x1b \x01(\x0e\x32\x1e.proto2.MethodOptions.LogLevel:+LOG_HEADER_AND_NON_PRIVATE_PAYLOAD_INTERNAL\x12\x19\n\ndeprecated\x18! \x01(\x08:\x05\x66\x61lse\x12V\n\x11idempotency_level\x18\" \x01(\x0e\x32&.proto2.MethodOptions.IdempotencyLevel:\x13IDEMPOTENCY_UNKNOWN\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption\"\x1c\n\x08Protocol\x12\x07\n\x03TCP\x10\x00\x12\x07\n\x03UDP\x10\x01\"e\n\rSecurityLevel\x12\x08\n\x04NONE\x10\x00\x12\r\n\tINTEGRITY\x10\x01\x12\x19\n\x15PRIVACY_AND_INTEGRITY\x10\x02\x12 \n\x1cSTRONG_PRIVACY_AND_INTEGRITY\x10\x03\"0\n\x06\x46ormat\x12\x10\n\x0cUNCOMPRESSED\x10\x00\x12\x14\n\x10ZIPPY_COMPRESSED\x10\x01\"\x9f\x01\n\x08LogLevel\x12\x0c\n\x08LOG_NONE\x10\x00\x12\x13\n\x0fLOG_HEADER_ONLY\x10\x01\x12/\n+LOG_HEADER_AND_NON_PRIVATE_PAYLOAD_INTERNAL\x10\x02\x12#\n\x1fLOG_HEADER_AND_FILTERED_PAYLOAD\x10\x03\x12\x1a\n\x16LOG_HEADER_AND_PAYLOAD\x10\x04\"\"\n\tTokenUnit\x12\x0b\n\x07MESSAGE\x10\x00\x12\x08\n\x04\x42YTE\x10\x01\"P\n\x10IdempotencyLevel\x12\x17\n\x13IDEMPOTENCY_UNKNOWN\x10\x00\x12\x13\n\x0fNO_SIDE_EFFECTS\x10\x01\x12\x0e\n\nIDEMPOTENT\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xe7\x04\n\rStreamOptions\x12!\n\x15\x63lient_initial_tokens\x18\x01 \x01(\x03:\x02-1\x12!\n\x15server_initial_tokens\x18\x02 \x01(\x03:\x02-1\x12<\n\ntoken_unit\x18\x03 \x01(\x0e\x32\x1f.proto2.StreamOptions.TokenUnit:\x07MESSAGE\x12\x41\n\x0esecurity_level\x18\x04 \x01(\x0e\x32#.proto2.MethodOptions.SecurityLevel:\x04NONE\x12\x16\n\x0esecurity_label\x18\x05 \x01(\t\x12\x1b\n\x0e\x63lient_logging\x18\x06 \x01(\x05:\x03\x32\x35\x36\x12\x1b\n\x0eserver_logging\x18\x07 \x01(\x05:\x03\x32\x35\x36\x12\x14\n\x08\x64\x65\x61\x64line\x18\x08 \x01(\x01:\x02-1\x12\x18\n\tfail_fast\x18\t \x01(\x08:\x05\x66\x61lse\x12\'\n\x18\x65nd_user_creds_requested\x18\n \x01(\x08:\x05\x66\x61lse\x12^\n\tlog_level\x18\x0b \x01(\x0e\x32\x1e.proto2.MethodOptions.LogLevel:+LOG_HEADER_AND_NON_PRIVATE_PAYLOAD_INTERNAL\x12\x19\n\ndeprecated\x18! \x01(\x08:\x05\x66\x61lse\x12:\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32\x1b.proto2.UninterpretedOption\"\"\n\tTokenUnit\x12\x0b\n\x07MESSAGE\x10\x00\x12\x08\n\x04\x42YTE\x10\x01*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x95\x02\n\x13UninterpretedOption\x12\x32\n\x04name\x18\x02 \x03(\x0b\x32$.proto2.UninterpretedOption.NamePart\x12\x18\n\x10identifier_value\x18\x03 \x01(\t\x12\x1a\n\x12positive_int_value\x18\x04 \x01(\x04\x12\x1a\n\x12negative_int_value\x18\x05 \x01(\x03\x12\x14\n\x0c\x64ouble_value\x18\x06 \x01(\x01\x12\x14\n\x0cstring_value\x18\x07 \x01(\x0c\x12\x17\n\x0f\x61ggregate_value\x18\x08 \x01(\t\x1a\x33\n\x08NamePart\x12\x11\n\tname_part\x18\x01 \x02(\t\x12\x14\n\x0cis_extension\x18\x02 \x02(\x08\"\xcc\x01\n\x0eSourceCodeInfo\x12\x31\n\x08location\x18\x01 \x03(\x0b\x32\x1f.proto2.SourceCodeInfo.Location\x1a\x86\x01\n\x08Location\x12\x10\n\x04path\x18\x01 \x03(\x05\x42\x02\x10\x01\x12\x10\n\x04span\x18\x02 \x03(\x05\x42\x02\x10\x01\x12\x18\n\x10leading_comments\x18\x03 \x01(\t\x12\x19\n\x11trailing_comments\x18\x04 \x01(\t\x12!\n\x19leading_detached_comments\x18\x06 \x03(\t\"\x9e\x01\n\x11GeneratedCodeInfo\x12\x38\n\nannotation\x18\x01 \x03(\x0b\x32$.proto2.GeneratedCodeInfo.Annotation\x1aO\n\nAnnotation\x12\x10\n\x04path\x18\x01 \x03(\x05\x42\x02\x10\x01\x12\x13\n\x0bsource_file\x18\x02 \x01(\t\x12\r\n\x05\x62\x65gin\x18\x03 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x04 \x01(\x05\x42\x92\x01\n\x13\x63om.google.protobufB\x10\x44\x65scriptorProtosH\x01Z>github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor\xe0\x01\x01\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1aGoogle.Protobuf.Reflection') | |
) | |
@@ -153,28 +153,6 @@ | |
) | |
_sym_db.RegisterEnumDescriptor(_FIELDDESCRIPTORPROTO_LABEL) | |
-_FILEOPTIONS_COMPATIBILITYLEVEL = _descriptor.EnumDescriptor( | |
- name='CompatibilityLevel', | |
- full_name='proto2.FileOptions.CompatibilityLevel', | |
- filename=None, | |
- file=DESCRIPTOR, | |
- values=[ | |
- _descriptor.EnumValueDescriptor( | |
- name='NO_COMPATIBILITY', index=0, number=0, | |
- serialized_options=None, | |
- type=None), | |
- _descriptor.EnumValueDescriptor( | |
- name='PROTO1_COMPATIBLE', index=1, number=100, | |
- serialized_options=None, | |
- type=None), | |
- ], | |
- containing_type=None, | |
- serialized_options=None, | |
- serialized_start=3913, | |
- serialized_end=3978, | |
-) | |
-_sym_db.RegisterEnumDescriptor(_FILEOPTIONS_COMPATIBILITYLEVEL) | |
- | |
_FILEOPTIONS_OPTIMIZEMODE = _descriptor.EnumDescriptor( | |
name='OptimizeMode', | |
full_name='proto2.FileOptions.OptimizeMode', | |
@@ -196,8 +174,8 @@ | |
], | |
containing_type=None, | |
serialized_options=None, | |
- serialized_start=3980, | |
- serialized_end=4038, | |
+ serialized_start=3944, | |
+ serialized_end=4002, | |
) | |
_sym_db.RegisterEnumDescriptor(_FILEOPTIONS_OPTIMIZEMODE) | |
@@ -222,8 +200,8 @@ | |
], | |
containing_type=None, | |
serialized_options=None, | |
- serialized_start=4921, | |
- serialized_end=4968, | |
+ serialized_start=4885, | |
+ serialized_end=4932, | |
) | |
_sym_db.RegisterEnumDescriptor(_FIELDOPTIONS_CTYPE) | |
@@ -248,8 +226,8 @@ | |
], | |
containing_type=None, | |
serialized_options=None, | |
- serialized_start=4970, | |
- serialized_end=5023, | |
+ serialized_start=4934, | |
+ serialized_end=4987, | |
) | |
_sym_db.RegisterEnumDescriptor(_FIELDOPTIONS_JSTYPE) | |
@@ -270,8 +248,8 @@ | |
], | |
containing_type=None, | |
serialized_options=None, | |
- serialized_start=6667, | |
- serialized_end=6695, | |
+ serialized_start=6631, | |
+ serialized_end=6659, | |
) | |
_sym_db.RegisterEnumDescriptor(_METHODOPTIONS_PROTOCOL) | |
@@ -300,8 +278,8 @@ | |
], | |
containing_type=None, | |
serialized_options=None, | |
- serialized_start=6697, | |
- serialized_end=6798, | |
+ serialized_start=6661, | |
+ serialized_end=6762, | |
) | |
_sym_db.RegisterEnumDescriptor(_METHODOPTIONS_SECURITYLEVEL) | |
@@ -322,8 +300,8 @@ | |
], | |
containing_type=None, | |
serialized_options=None, | |
- serialized_start=6800, | |
- serialized_end=6848, | |
+ serialized_start=6764, | |
+ serialized_end=6812, | |
) | |
_sym_db.RegisterEnumDescriptor(_METHODOPTIONS_FORMAT) | |
@@ -356,8 +334,8 @@ | |
], | |
containing_type=None, | |
serialized_options=None, | |
- serialized_start=6851, | |
- serialized_end=7010, | |
+ serialized_start=6815, | |
+ serialized_end=6974, | |
) | |
_sym_db.RegisterEnumDescriptor(_METHODOPTIONS_LOGLEVEL) | |
@@ -378,8 +356,8 @@ | |
], | |
containing_type=None, | |
serialized_options=None, | |
- serialized_start=7012, | |
- serialized_end=7046, | |
+ serialized_start=6976, | |
+ serialized_end=7010, | |
) | |
_sym_db.RegisterEnumDescriptor(_METHODOPTIONS_TOKENUNIT) | |
@@ -404,8 +382,8 @@ | |
], | |
containing_type=None, | |
serialized_options=None, | |
- serialized_start=7048, | |
- serialized_end=7128, | |
+ serialized_start=7012, | |
+ serialized_end=7092, | |
) | |
_sym_db.RegisterEnumDescriptor(_METHODOPTIONS_IDEMPOTENCYLEVEL) | |
@@ -426,8 +404,8 @@ | |
], | |
containing_type=None, | |
serialized_options=None, | |
- serialized_start=7012, | |
- serialized_end=7046, | |
+ serialized_start=6976, | |
+ serialized_end=7010, | |
) | |
_sym_db.RegisterEnumDescriptor(_STREAMOPTIONS_TOKENUNIT) | |
@@ -1440,7 +1418,14 @@ | |
is_extension=False, extension_scope=None, | |
serialized_options=None, file=DESCRIPTOR), | |
_descriptor.FieldDescriptor( | |
- name='uninterpreted_option', full_name='proto2.FileOptions.uninterpreted_option', index=30, | |
+ name='use_cc_stubby_library', full_name='proto2.FileOptions.use_cc_stubby_library', index=30, | |
+ number=43, type=8, cpp_type=7, label=1, | |
+ has_default_value=False, default_value=False, | |
+ message_type=None, enum_type=None, containing_type=None, | |
+ is_extension=False, extension_scope=None, | |
+ serialized_options=None, file=DESCRIPTOR), | |
+ _descriptor.FieldDescriptor( | |
+ name='uninterpreted_option', full_name='proto2.FileOptions.uninterpreted_option', index=31, | |
number=999, type=11, cpp_type=10, label=3, | |
has_default_value=False, default_value=[], | |
message_type=None, enum_type=None, containing_type=None, | |
@@ -1451,7 +1436,6 @@ | |
], | |
nested_types=[], | |
enum_types=[ | |
- _FILEOPTIONS_COMPATIBILITYLEVEL, | |
_FILEOPTIONS_OPTIMIZEMODE, | |
], | |
serialized_options=None, | |
@@ -1461,7 +1445,7 @@ | |
oneofs=[ | |
], | |
serialized_start=2856, | |
- serialized_end=4103, | |
+ serialized_end=4067, | |
) | |
@@ -1540,8 +1524,8 @@ | |
extension_ranges=[(1000, 536870912), ], | |
oneofs=[ | |
], | |
- serialized_start=4106, | |
- serialized_end=4474, | |
+ serialized_start=4070, | |
+ serialized_end=4438, | |
) | |
@@ -1578,8 +1562,8 @@ | |
extension_ranges=[], | |
oneofs=[ | |
], | |
- serialized_start=4874, | |
- serialized_end=4919, | |
+ serialized_start=4838, | |
+ serialized_end=4883, | |
) | |
_FIELDOPTIONS = _descriptor.Descriptor( | |
@@ -1673,8 +1657,8 @@ | |
extension_ranges=[(1000, 536870912), ], | |
oneofs=[ | |
], | |
- serialized_start=4477, | |
- serialized_end=5040, | |
+ serialized_start=4441, | |
+ serialized_end=5004, | |
) | |
@@ -1704,8 +1688,8 @@ | |
extension_ranges=[(1000, 536870912), ], | |
oneofs=[ | |
], | |
- serialized_start=5042, | |
- serialized_end=5127, | |
+ serialized_start=5006, | |
+ serialized_end=5091, | |
) | |
@@ -1756,8 +1740,8 @@ | |
extension_ranges=[(1000, 536870912), ], | |
oneofs=[ | |
], | |
- serialized_start=5130, | |
- serialized_end=5295, | |
+ serialized_start=5094, | |
+ serialized_end=5259, | |
) | |
@@ -1794,8 +1778,8 @@ | |
extension_ranges=[(1000, 536870912), ], | |
oneofs=[ | |
], | |
- serialized_start=5297, | |
- serialized_end=5413, | |
+ serialized_start=5261, | |
+ serialized_end=5377, | |
) | |
@@ -1846,8 +1830,8 @@ | |
extension_ranges=[(1000, 536870912), ], | |
oneofs=[ | |
], | |
- serialized_start=5416, | |
- serialized_end=5598, | |
+ serialized_start=5380, | |
+ serialized_end=5562, | |
) | |
@@ -2044,8 +2028,8 @@ | |
extension_ranges=[(1000, 536870912), ], | |
oneofs=[ | |
], | |
- serialized_start=5601, | |
- serialized_end=7139, | |
+ serialized_start=5565, | |
+ serialized_end=7103, | |
) | |
@@ -2160,8 +2144,8 @@ | |
extension_ranges=[(1000, 536870912), ], | |
oneofs=[ | |
], | |
- serialized_start=7142, | |
- serialized_end=7757, | |
+ serialized_start=7106, | |
+ serialized_end=7721, | |
) | |
@@ -2198,8 +2182,8 @@ | |
extension_ranges=[], | |
oneofs=[ | |
], | |
- serialized_start=7986, | |
- serialized_end=8037, | |
+ serialized_start=7950, | |
+ serialized_end=8001, | |
) | |
_UNINTERPRETEDOPTION = _descriptor.Descriptor( | |
@@ -2270,8 +2254,8 @@ | |
extension_ranges=[], | |
oneofs=[ | |
], | |
- serialized_start=7760, | |
- serialized_end=8037, | |
+ serialized_start=7724, | |
+ serialized_end=8001, | |
) | |
@@ -2329,8 +2313,8 @@ | |
extension_ranges=[], | |
oneofs=[ | |
], | |
- serialized_start=8110, | |
- serialized_end=8244, | |
+ serialized_start=8074, | |
+ serialized_end=8208, | |
) | |
_SOURCECODEINFO = _descriptor.Descriptor( | |
@@ -2359,8 +2343,8 @@ | |
extension_ranges=[], | |
oneofs=[ | |
], | |
- serialized_start=8040, | |
- serialized_end=8244, | |
+ serialized_start=8004, | |
+ serialized_end=8208, | |
) | |
@@ -2411,8 +2395,8 @@ | |
extension_ranges=[], | |
oneofs=[ | |
], | |
- serialized_start=8326, | |
- serialized_end=8405, | |
+ serialized_start=8290, | |
+ serialized_end=8369, | |
) | |
_GENERATEDCODEINFO = _descriptor.Descriptor( | |
@@ -2441,8 +2425,8 @@ | |
extension_ranges=[], | |
oneofs=[ | |
], | |
- serialized_start=8247, | |
- serialized_end=8405, | |
+ serialized_start=8211, | |
+ serialized_end=8369, | |
) | |
_FILEDESCRIPTORSET.fields_by_name['file'].message_type = _FILEDESCRIPTORPROTO | |
@@ -2482,7 +2466,6 @@ | |
_STREAMDESCRIPTORPROTO.fields_by_name['options'].message_type = _STREAMOPTIONS | |
_FILEOPTIONS.fields_by_name['optimize_for'].enum_type = _FILEOPTIONS_OPTIMIZEMODE | |
_FILEOPTIONS.fields_by_name['uninterpreted_option'].message_type = _UNINTERPRETEDOPTION | |
-_FILEOPTIONS_COMPATIBILITYLEVEL.containing_type = _FILEOPTIONS | |
_FILEOPTIONS_OPTIMIZEMODE.containing_type = _FILEOPTIONS | |
_MESSAGEOPTIONS.fields_by_name['uninterpreted_option'].message_type = _UNINTERPRETEDOPTION | |
_FIELDOPTIONS_UPGRADEDOPTION.containing_type = _FIELDOPTIONS | |
diff -u -r 1.9.69/google_appengine/google/net/proto2/python/internal/python_message.py 1.9.70/google_appengine/google/net/proto2/python/internal/python_message.py | |
--- 1.9.69/google_appengine/google/net/proto2/python/internal/python_message.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/net/proto2/python/internal/python_message.py 2018-05-29 11:47:32.000000000 -0700 | |
@@ -44,6 +44,7 @@ | |
import weakref | |
from google.appengine._internal import six | |
+from google.appengine._internal.six.moves import range | |
from google.net.proto2.python.internal import api_implementation | |
@@ -112,6 +113,21 @@ | |
Newly-allocated class. | |
""" | |
descriptor = dictionary[GeneratedProtocolMessageType._DESCRIPTOR_KEY] | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ new_class = getattr(descriptor, '_concrete_class', None) | |
+ if new_class: | |
+ return new_class | |
+ | |
if descriptor.full_name in well_known_types.WKTBASES: | |
bases += (well_known_types.WKTBASES[descriptor.full_name],) | |
_AddClassAttributesForNestedExtensions(descriptor, dictionary) | |
@@ -139,6 +155,16 @@ | |
type. | |
""" | |
descriptor = dictionary[GeneratedProtocolMessageType._DESCRIPTOR_KEY] | |
+ | |
+ | |
+ | |
+ existing_class = getattr(descriptor, '_concrete_class', None) | |
+ if existing_class: | |
+ assert existing_class is cls, ( | |
+ 'Duplicate `GeneratedProtocolMessageType` created for descriptor %r' | |
+ % (descriptor.full_name)) | |
+ return | |
+ | |
cls._decoders_by_tag = {} | |
if (descriptor.has_options and | |
descriptor.GetOptions().message_set_wire_format): | |
@@ -410,6 +436,9 @@ | |
message_type = field.message_type | |
def MakeSubMessageDefault(message): | |
+ assert getattr(message_type, '_concrete_class', None), ( | |
+ 'Uninitialized concrete class found for field %r (message type %r)' | |
+ % (field.full_name, message_type.full_name)) | |
result = message_type._concrete_class() | |
result._SetListener( | |
_OneofListener(message, field) | |
@@ -1459,6 +1488,10 @@ | |
if extension_handle.label == _FieldDescriptor.LABEL_REPEATED: | |
result = extension_handle._default_constructor(self._extended_message) | |
elif extension_handle.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE: | |
+ assert getattr(extension_handle.message_type, '_concrete_class', None), ( | |
+ 'Uninitialized concrete class found for field %r (message type %r)' | |
+ % (extension_handle.full_name, | |
+ extension_handle.message_type.full_name)) | |
result = extension_handle.message_type._concrete_class() | |
try: | |
result._SetListener(self._extended_message._listener_for_children) | |
diff -u -r 1.9.69/google_appengine/google/net/proto2/python/internal/type_checkers.py 1.9.70/google_appengine/google/net/proto2/python/internal/type_checkers.py | |
--- 1.9.69/google_appengine/google/net/proto2/python/internal/type_checkers.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/net/proto2/python/internal/type_checkers.py 2018-05-29 11:47:32.000000000 -0700 | |
@@ -66,7 +66,7 @@ | |
if field.full_name == "storage_graph_bfg.Triple.obj": | |
- return TypeChecker(unicode, bytes) | |
+ return TypeChecker(six.text_type, six.binary_type) | |
return UnicodeValueChecker() | |
if field.cpp_type == _FieldDescriptor.CPPTYPE_ENUM: | |
diff -u -r 1.9.69/google_appengine/google/net/proto2/python/public/descriptor_pool.py 1.9.70/google_appengine/google/net/proto2/python/public/descriptor_pool.py | |
--- 1.9.69/google_appengine/google/net/proto2/python/public/descriptor_pool.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/net/proto2/python/public/descriptor_pool.py 2018-05-29 11:47:32.000000000 -0700 | |
@@ -584,6 +584,23 @@ | |
self._FindFileContainingSymbolInDb(full_name) | |
return self._service_descriptors[full_name] | |
+ def FindMethodByName(self, full_name): | |
+ """Loads the named service method descriptor from the pool. | |
+ | |
+ Args: | |
+ full_name: The full name of the method descriptor to load. | |
+ | |
+ Returns: | |
+ The method descriptor for the service method. | |
+ | |
+ Raises: | |
+ KeyError: if the method cannot be found in the pool. | |
+ """ | |
+ full_name = _NormalizeFullyQualifiedName(full_name) | |
+ service_name, _, method_name = full_name.rpartition('.') | |
+ service_descriptor = self.FindServiceByName(service_name) | |
+ return service_descriptor.methods_by_name[method_name] | |
+ | |
def _FindFileContainingSymbolInDb(self, symbol): | |
"""Finds the file in descriptor DB containing the specified symbol. | |
diff -u -r 1.9.69/google_appengine/google/net/proto2/python/public/reflection.py 1.9.70/google_appengine/google/net/proto2/python/public/reflection.py | |
--- 1.9.69/google_appengine/google/net/proto2/python/public/reflection.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/net/proto2/python/public/reflection.py 2018-05-29 11:47:32.000000000 -0700 | |
@@ -54,9 +54,13 @@ | |
MESSAGE_CLASS_CACHE = {} | |
+ | |
def ParseMessage(descriptor, byte_str): | |
"""Generate a new Message instance from this Descriptor and a byte string. | |
+ DEPRECATED: ParseMessage is deprecated because it is using MakeClass(). | |
+ Please use MessageFactory.GetPrototype() instead. | |
+ | |
Args: | |
descriptor: Protobuf Descriptor object | |
byte_str: Serialized protocol buffer byte string | |
@@ -70,9 +74,14 @@ | |
return new_msg | |
+ | |
def MakeClass(descriptor): | |
"""Construct a class object for a protobuf described by descriptor. | |
+ DEPRECATED: use MessageFactory.GetPrototype() instead. | |
+ This function will lead to duplicate message classes, which won't play well | |
+ with extensions. Message factory info is also missing. | |
+ | |
Composite descriptors are handled by defining the new class as a member of the | |
parent class, recursing as deep as necessary. | |
This is the dynamic equivalent to: | |
diff -u -r 1.9.69/google_appengine/google/net/proto2/python/public/text_format.py 1.9.70/google_appengine/google/net/proto2/python/public/text_format.py | |
--- 1.9.69/google_appengine/google/net/proto2/python/public/text_format.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/net/proto2/python/public/text_format.py 2018-05-29 11:47:32.000000000 -0700 | |
@@ -42,8 +42,8 @@ | |
from google.net.proto2.python.public import descriptor | |
from google.net.proto2.python.public import text_encoding | |
-__all__ = ['MessageToString', 'PrintMessage', 'PrintField', 'PrintFieldValue', | |
- 'Merge'] | |
+__all__ = ['MessageToString', 'Parse', 'PrintMessage', 'PrintField', | |
+ 'PrintFieldValue', 'Merge'] | |
_INTEGER_CHECKERS = (type_checkers.Uint32ValueChecker(), | |
type_checkers.Int32ValueChecker(), | |
@@ -1303,7 +1303,8 @@ | |
def ParseError(self, message): | |
"""Creates and *returns* a ParseError for the current token.""" | |
- return ParseError(message, self._line + 1, self._column + 1) | |
+ return ParseError('\'' + self._current_line + '\': ' + message, | |
+ self._line + 1, self._column + 1) | |
def _StringParseError(self, e): | |
return self.ParseError('Couldn\'t parse string: ' + str(e)) | |
diff -u -r 1.9.69/google_appengine/google/pyglib/singleton.py 1.9.70/google_appengine/google/pyglib/singleton.py | |
--- 1.9.69/google_appengine/google/pyglib/singleton.py 2018-05-29 11:48:16.000000000 -0700 | |
+++ 1.9.70/google_appengine/google/pyglib/singleton.py 2018-05-29 11:47:32.000000000 -0700 | |
@@ -16,20 +16,31 @@ | |
# | |
# Copyright 2011 Google Inc. All Rights Reserved. | |
-"""Thread-safe implementation of a singleton decorator. | |
+"""A thread-compatible singleton decorator. | |
Sometimes, only a single instance of a class should ever be created. This file | |
provides a wrapper that turns a class into a Singleton. The constructor may | |
only be called once; a static method Singleton() provides access to the | |
constructed instance. If Singleton() is called before the constructor, or if | |
-the constructor is called multiple times, Errors are raised. This wrapper is | |
-thread-safe; calls to the constructor and Singleton() method are protected | |
-by per-class locks. | |
+the constructor is called multiple times, Errors are raised. | |
+ | |
+The only thread-safety guarantees this wrapper provides are: | |
+ | |
+* Multiple calls to Singleton() may occur concurrently, and no two calls will | |
+ return different objects. | |
+* `__init__` will never be called twice, even in the face of concurrent calls. | |
+ Exactly one attempt will succeed, all others will raise an Error. | |
+ | |
+All calls to Singleton() must happen after the constructor call -- so either | |
+the constructor must be invoked before any threads would try to access the | |
+singleton (e.g. in main()), or else the threads must use an additional lock | |
+to synchronize attempts to invoke the constructor. In that case, using a | |
+memoized factory function or a non-singleton global guarded by a lock may be | |
+more appropriate. | |
Singletons are often associated with bad coding practices; see | |
http://wiki/Main/SingletonsConsideredDangerous and decide if you should | |
-really be using this functionality. Consider alternatives, like the | |
-"Borg pattern" where object state (instead of object identity) is shared. | |
+really be using this functionality. | |
To make your singletons more testable, use the following idiom: | |
@@ -122,7 +133,7 @@ | |
def Singleton(cls): | |
"""Turn a class into a singleton. | |
- One call to the constructor is allowed. After that, all future calls | |
+ Exactly one call to the constructor is required. After that, all future calls | |
must be to the Singleton() static method. | |
This code is multithread-safe. Shared locks are held for brief periods | |
@@ -132,7 +143,7 @@ | |
cls: The class to decorate. | |
Returns: | |
- The singleton class. Note that this class is an extension | |
+ The singleton class. Note that this class is a sub-class | |
of the class it is decorating. | |
Raises: | |
diff -u -r 1.9.69/google_appengine/lib/httplib2/httplib2/httplib2_test.py 1.9.70/google_appengine/lib/httplib2/httplib2/httplib2_test.py | |
--- 1.9.69/google_appengine/lib/httplib2/httplib2/httplib2_test.py 2018-05-29 11:48:29.000000000 -0700 | |
+++ 1.9.70/google_appengine/lib/httplib2/httplib2/httplib2_test.py 2018-05-29 11:47:46.000000000 -0700 | |
@@ -7,8 +7,8 @@ | |
__author__ = '[email protected] (Prakash Barathan)' | |
import google3 | |
+from absl import logging | |
-from google3.pyglib import logging | |
from google3.testing.pybase import googletest | |
from google3.third_party.py import httplib2 | |
diff -u -r 1.9.69/google_appengine/php/sdk/google/appengine/datastore/entity_pb.php 1.9.70/google_appengine/php/sdk/google/appengine/datastore/entity_pb.php | |
--- 1.9.69/google_appengine/php/sdk/google/appengine/datastore/entity_pb.php 2018-05-29 11:48:30.000000000 -0700 | |
+++ 1.9.70/google_appengine/php/sdk/google/appengine/datastore/entity_pb.php 2018-05-29 11:47:47.000000000 -0700 | |
@@ -3157,6 +3157,7 @@ | |
const VERSION_UNSPECIFIED = 0; | |
const V1 = 1; | |
const V2 = 2; | |
+ const V3 = 3; | |
} | |
} | |
namespace storage_onestore_v3\Index\Property { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment