You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1026 lines
40 KiB

  1. // Code generated by protoc-gen-go. DO NOT EDIT.
  2. // source: google/appengine/v1/app_yaml.proto
  3. package appengine // import "google.golang.org/genproto/googleapis/appengine/v1"
  4. import proto "github.com/golang/protobuf/proto"
  5. import fmt "fmt"
  6. import math "math"
  7. import duration "github.com/golang/protobuf/ptypes/duration"
  8. import _ "google.golang.org/genproto/googleapis/api/annotations"
  9. // Reference imports to suppress errors if they are not otherwise used.
  10. var _ = proto.Marshal
  11. var _ = fmt.Errorf
  12. var _ = math.Inf
  13. // This is a compile-time assertion to ensure that this generated file
  14. // is compatible with the proto package it is being compiled against.
  15. // A compilation error at this line likely means your copy of the
  16. // proto package needs to be updated.
  17. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  18. // Actions to take when the user is not logged in.
  19. type AuthFailAction int32
  20. const (
  21. // Not specified. `AUTH_FAIL_ACTION_REDIRECT` is assumed.
  22. AuthFailAction_AUTH_FAIL_ACTION_UNSPECIFIED AuthFailAction = 0
  23. // Redirects user to "accounts.google.com". The user is redirected back to the
  24. // application URL after signing in or creating an account.
  25. AuthFailAction_AUTH_FAIL_ACTION_REDIRECT AuthFailAction = 1
  26. // Rejects request with a `401` HTTP status code and an error
  27. // message.
  28. AuthFailAction_AUTH_FAIL_ACTION_UNAUTHORIZED AuthFailAction = 2
  29. )
  30. var AuthFailAction_name = map[int32]string{
  31. 0: "AUTH_FAIL_ACTION_UNSPECIFIED",
  32. 1: "AUTH_FAIL_ACTION_REDIRECT",
  33. 2: "AUTH_FAIL_ACTION_UNAUTHORIZED",
  34. }
  35. var AuthFailAction_value = map[string]int32{
  36. "AUTH_FAIL_ACTION_UNSPECIFIED": 0,
  37. "AUTH_FAIL_ACTION_REDIRECT": 1,
  38. "AUTH_FAIL_ACTION_UNAUTHORIZED": 2,
  39. }
  40. func (x AuthFailAction) String() string {
  41. return proto.EnumName(AuthFailAction_name, int32(x))
  42. }
  43. func (AuthFailAction) EnumDescriptor() ([]byte, []int) {
  44. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{0}
  45. }
  46. // Methods to restrict access to a URL based on login status.
  47. type LoginRequirement int32
  48. const (
  49. // Not specified. `LOGIN_OPTIONAL` is assumed.
  50. LoginRequirement_LOGIN_UNSPECIFIED LoginRequirement = 0
  51. // Does not require that the user is signed in.
  52. LoginRequirement_LOGIN_OPTIONAL LoginRequirement = 1
  53. // If the user is not signed in, the `auth_fail_action` is taken.
  54. // In addition, if the user is not an administrator for the
  55. // application, they are given an error message regardless of
  56. // `auth_fail_action`. If the user is an administrator, the handler
  57. // proceeds.
  58. LoginRequirement_LOGIN_ADMIN LoginRequirement = 2
  59. // If the user has signed in, the handler proceeds normally. Otherwise, the
  60. // auth_fail_action is taken.
  61. LoginRequirement_LOGIN_REQUIRED LoginRequirement = 3
  62. )
  63. var LoginRequirement_name = map[int32]string{
  64. 0: "LOGIN_UNSPECIFIED",
  65. 1: "LOGIN_OPTIONAL",
  66. 2: "LOGIN_ADMIN",
  67. 3: "LOGIN_REQUIRED",
  68. }
  69. var LoginRequirement_value = map[string]int32{
  70. "LOGIN_UNSPECIFIED": 0,
  71. "LOGIN_OPTIONAL": 1,
  72. "LOGIN_ADMIN": 2,
  73. "LOGIN_REQUIRED": 3,
  74. }
  75. func (x LoginRequirement) String() string {
  76. return proto.EnumName(LoginRequirement_name, int32(x))
  77. }
  78. func (LoginRequirement) EnumDescriptor() ([]byte, []int) {
  79. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{1}
  80. }
  81. // Methods to enforce security (HTTPS) on a URL.
  82. type SecurityLevel int32
  83. const (
  84. // Not specified.
  85. SecurityLevel_SECURE_UNSPECIFIED SecurityLevel = 0
  86. // Both HTTP and HTTPS requests with URLs that match the handler succeed
  87. // without redirects. The application can examine the request to determine
  88. // which protocol was used, and respond accordingly.
  89. SecurityLevel_SECURE_DEFAULT SecurityLevel = 0
  90. // Requests for a URL that match this handler that use HTTPS are automatically
  91. // redirected to the HTTP equivalent URL.
  92. SecurityLevel_SECURE_NEVER SecurityLevel = 1
  93. // Both HTTP and HTTPS requests with URLs that match the handler succeed
  94. // without redirects. The application can examine the request to determine
  95. // which protocol was used and respond accordingly.
  96. SecurityLevel_SECURE_OPTIONAL SecurityLevel = 2
  97. // Requests for a URL that match this handler that do not use HTTPS are
  98. // automatically redirected to the HTTPS URL with the same path. Query
  99. // parameters are reserved for the redirect.
  100. SecurityLevel_SECURE_ALWAYS SecurityLevel = 3
  101. )
  102. var SecurityLevel_name = map[int32]string{
  103. 0: "SECURE_UNSPECIFIED",
  104. // Duplicate value: 0: "SECURE_DEFAULT",
  105. 1: "SECURE_NEVER",
  106. 2: "SECURE_OPTIONAL",
  107. 3: "SECURE_ALWAYS",
  108. }
  109. var SecurityLevel_value = map[string]int32{
  110. "SECURE_UNSPECIFIED": 0,
  111. "SECURE_DEFAULT": 0,
  112. "SECURE_NEVER": 1,
  113. "SECURE_OPTIONAL": 2,
  114. "SECURE_ALWAYS": 3,
  115. }
  116. func (x SecurityLevel) String() string {
  117. return proto.EnumName(SecurityLevel_name, int32(x))
  118. }
  119. func (SecurityLevel) EnumDescriptor() ([]byte, []int) {
  120. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{2}
  121. }
  122. // Error codes.
  123. type ErrorHandler_ErrorCode int32
  124. const (
  125. // Not specified. ERROR_CODE_DEFAULT is assumed.
  126. ErrorHandler_ERROR_CODE_UNSPECIFIED ErrorHandler_ErrorCode = 0
  127. // All other error types.
  128. ErrorHandler_ERROR_CODE_DEFAULT ErrorHandler_ErrorCode = 0
  129. // Application has exceeded a resource quota.
  130. ErrorHandler_ERROR_CODE_OVER_QUOTA ErrorHandler_ErrorCode = 1
  131. // Client blocked by the application's Denial of Service protection
  132. // configuration.
  133. ErrorHandler_ERROR_CODE_DOS_API_DENIAL ErrorHandler_ErrorCode = 2
  134. // Deadline reached before the application responds.
  135. ErrorHandler_ERROR_CODE_TIMEOUT ErrorHandler_ErrorCode = 3
  136. )
  137. var ErrorHandler_ErrorCode_name = map[int32]string{
  138. 0: "ERROR_CODE_UNSPECIFIED",
  139. // Duplicate value: 0: "ERROR_CODE_DEFAULT",
  140. 1: "ERROR_CODE_OVER_QUOTA",
  141. 2: "ERROR_CODE_DOS_API_DENIAL",
  142. 3: "ERROR_CODE_TIMEOUT",
  143. }
  144. var ErrorHandler_ErrorCode_value = map[string]int32{
  145. "ERROR_CODE_UNSPECIFIED": 0,
  146. "ERROR_CODE_DEFAULT": 0,
  147. "ERROR_CODE_OVER_QUOTA": 1,
  148. "ERROR_CODE_DOS_API_DENIAL": 2,
  149. "ERROR_CODE_TIMEOUT": 3,
  150. }
  151. func (x ErrorHandler_ErrorCode) String() string {
  152. return proto.EnumName(ErrorHandler_ErrorCode_name, int32(x))
  153. }
  154. func (ErrorHandler_ErrorCode) EnumDescriptor() ([]byte, []int) {
  155. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{1, 0}
  156. }
  157. // Redirect codes.
  158. type UrlMap_RedirectHttpResponseCode int32
  159. const (
  160. // Not specified. `302` is assumed.
  161. UrlMap_REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED UrlMap_RedirectHttpResponseCode = 0
  162. // `301 Moved Permanently` code.
  163. UrlMap_REDIRECT_HTTP_RESPONSE_CODE_301 UrlMap_RedirectHttpResponseCode = 1
  164. // `302 Moved Temporarily` code.
  165. UrlMap_REDIRECT_HTTP_RESPONSE_CODE_302 UrlMap_RedirectHttpResponseCode = 2
  166. // `303 See Other` code.
  167. UrlMap_REDIRECT_HTTP_RESPONSE_CODE_303 UrlMap_RedirectHttpResponseCode = 3
  168. // `307 Temporary Redirect` code.
  169. UrlMap_REDIRECT_HTTP_RESPONSE_CODE_307 UrlMap_RedirectHttpResponseCode = 4
  170. )
  171. var UrlMap_RedirectHttpResponseCode_name = map[int32]string{
  172. 0: "REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED",
  173. 1: "REDIRECT_HTTP_RESPONSE_CODE_301",
  174. 2: "REDIRECT_HTTP_RESPONSE_CODE_302",
  175. 3: "REDIRECT_HTTP_RESPONSE_CODE_303",
  176. 4: "REDIRECT_HTTP_RESPONSE_CODE_307",
  177. }
  178. var UrlMap_RedirectHttpResponseCode_value = map[string]int32{
  179. "REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED": 0,
  180. "REDIRECT_HTTP_RESPONSE_CODE_301": 1,
  181. "REDIRECT_HTTP_RESPONSE_CODE_302": 2,
  182. "REDIRECT_HTTP_RESPONSE_CODE_303": 3,
  183. "REDIRECT_HTTP_RESPONSE_CODE_307": 4,
  184. }
  185. func (x UrlMap_RedirectHttpResponseCode) String() string {
  186. return proto.EnumName(UrlMap_RedirectHttpResponseCode_name, int32(x))
  187. }
  188. func (UrlMap_RedirectHttpResponseCode) EnumDescriptor() ([]byte, []int) {
  189. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{2, 0}
  190. }
  191. // [Google Cloud
  192. // Endpoints](https://cloud.google.com/appengine/docs/python/endpoints/)
  193. // configuration for API handlers.
  194. type ApiConfigHandler struct {
  195. // Action to take when users access resources that require
  196. // authentication. Defaults to `redirect`.
  197. AuthFailAction AuthFailAction `protobuf:"varint,1,opt,name=auth_fail_action,json=authFailAction,proto3,enum=google.appengine.v1.AuthFailAction" json:"auth_fail_action,omitempty"`
  198. // Level of login required to access this resource. Defaults to
  199. // `optional`.
  200. Login LoginRequirement `protobuf:"varint,2,opt,name=login,proto3,enum=google.appengine.v1.LoginRequirement" json:"login,omitempty"`
  201. // Path to the script from the application root directory.
  202. Script string `protobuf:"bytes,3,opt,name=script,proto3" json:"script,omitempty"`
  203. // Security (HTTPS) enforcement for this URL.
  204. SecurityLevel SecurityLevel `protobuf:"varint,4,opt,name=security_level,json=securityLevel,proto3,enum=google.appengine.v1.SecurityLevel" json:"security_level,omitempty"`
  205. // URL to serve the endpoint at.
  206. Url string `protobuf:"bytes,5,opt,name=url,proto3" json:"url,omitempty"`
  207. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  208. XXX_unrecognized []byte `json:"-"`
  209. XXX_sizecache int32 `json:"-"`
  210. }
  211. func (m *ApiConfigHandler) Reset() { *m = ApiConfigHandler{} }
  212. func (m *ApiConfigHandler) String() string { return proto.CompactTextString(m) }
  213. func (*ApiConfigHandler) ProtoMessage() {}
  214. func (*ApiConfigHandler) Descriptor() ([]byte, []int) {
  215. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{0}
  216. }
  217. func (m *ApiConfigHandler) XXX_Unmarshal(b []byte) error {
  218. return xxx_messageInfo_ApiConfigHandler.Unmarshal(m, b)
  219. }
  220. func (m *ApiConfigHandler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  221. return xxx_messageInfo_ApiConfigHandler.Marshal(b, m, deterministic)
  222. }
  223. func (dst *ApiConfigHandler) XXX_Merge(src proto.Message) {
  224. xxx_messageInfo_ApiConfigHandler.Merge(dst, src)
  225. }
  226. func (m *ApiConfigHandler) XXX_Size() int {
  227. return xxx_messageInfo_ApiConfigHandler.Size(m)
  228. }
  229. func (m *ApiConfigHandler) XXX_DiscardUnknown() {
  230. xxx_messageInfo_ApiConfigHandler.DiscardUnknown(m)
  231. }
  232. var xxx_messageInfo_ApiConfigHandler proto.InternalMessageInfo
  233. func (m *ApiConfigHandler) GetAuthFailAction() AuthFailAction {
  234. if m != nil {
  235. return m.AuthFailAction
  236. }
  237. return AuthFailAction_AUTH_FAIL_ACTION_UNSPECIFIED
  238. }
  239. func (m *ApiConfigHandler) GetLogin() LoginRequirement {
  240. if m != nil {
  241. return m.Login
  242. }
  243. return LoginRequirement_LOGIN_UNSPECIFIED
  244. }
  245. func (m *ApiConfigHandler) GetScript() string {
  246. if m != nil {
  247. return m.Script
  248. }
  249. return ""
  250. }
  251. func (m *ApiConfigHandler) GetSecurityLevel() SecurityLevel {
  252. if m != nil {
  253. return m.SecurityLevel
  254. }
  255. return SecurityLevel_SECURE_UNSPECIFIED
  256. }
  257. func (m *ApiConfigHandler) GetUrl() string {
  258. if m != nil {
  259. return m.Url
  260. }
  261. return ""
  262. }
  263. // Custom static error page to be served when an error occurs.
  264. type ErrorHandler struct {
  265. // Error condition this handler applies to.
  266. ErrorCode ErrorHandler_ErrorCode `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3,enum=google.appengine.v1.ErrorHandler_ErrorCode" json:"error_code,omitempty"`
  267. // Static file content to be served for this error.
  268. StaticFile string `protobuf:"bytes,2,opt,name=static_file,json=staticFile,proto3" json:"static_file,omitempty"`
  269. // MIME type of file. Defaults to `text/html`.
  270. MimeType string `protobuf:"bytes,3,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"`
  271. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  272. XXX_unrecognized []byte `json:"-"`
  273. XXX_sizecache int32 `json:"-"`
  274. }
  275. func (m *ErrorHandler) Reset() { *m = ErrorHandler{} }
  276. func (m *ErrorHandler) String() string { return proto.CompactTextString(m) }
  277. func (*ErrorHandler) ProtoMessage() {}
  278. func (*ErrorHandler) Descriptor() ([]byte, []int) {
  279. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{1}
  280. }
  281. func (m *ErrorHandler) XXX_Unmarshal(b []byte) error {
  282. return xxx_messageInfo_ErrorHandler.Unmarshal(m, b)
  283. }
  284. func (m *ErrorHandler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  285. return xxx_messageInfo_ErrorHandler.Marshal(b, m, deterministic)
  286. }
  287. func (dst *ErrorHandler) XXX_Merge(src proto.Message) {
  288. xxx_messageInfo_ErrorHandler.Merge(dst, src)
  289. }
  290. func (m *ErrorHandler) XXX_Size() int {
  291. return xxx_messageInfo_ErrorHandler.Size(m)
  292. }
  293. func (m *ErrorHandler) XXX_DiscardUnknown() {
  294. xxx_messageInfo_ErrorHandler.DiscardUnknown(m)
  295. }
  296. var xxx_messageInfo_ErrorHandler proto.InternalMessageInfo
  297. func (m *ErrorHandler) GetErrorCode() ErrorHandler_ErrorCode {
  298. if m != nil {
  299. return m.ErrorCode
  300. }
  301. return ErrorHandler_ERROR_CODE_UNSPECIFIED
  302. }
  303. func (m *ErrorHandler) GetStaticFile() string {
  304. if m != nil {
  305. return m.StaticFile
  306. }
  307. return ""
  308. }
  309. func (m *ErrorHandler) GetMimeType() string {
  310. if m != nil {
  311. return m.MimeType
  312. }
  313. return ""
  314. }
  315. // URL pattern and description of how the URL should be handled. App Engine can
  316. // handle URLs by executing application code or by serving static files
  317. // uploaded with the version, such as images, CSS, or JavaScript.
  318. type UrlMap struct {
  319. // URL prefix. Uses regular expression syntax, which means regexp
  320. // special characters must be escaped, but should not contain groupings.
  321. // All URLs that begin with this prefix are handled by this handler, using the
  322. // portion of the URL after the prefix as part of the file path.
  323. UrlRegex string `protobuf:"bytes,1,opt,name=url_regex,json=urlRegex,proto3" json:"url_regex,omitempty"`
  324. // Type of handler for this URL pattern.
  325. //
  326. // Types that are valid to be assigned to HandlerType:
  327. // *UrlMap_StaticFiles
  328. // *UrlMap_Script
  329. // *UrlMap_ApiEndpoint
  330. HandlerType isUrlMap_HandlerType `protobuf_oneof:"handler_type"`
  331. // Security (HTTPS) enforcement for this URL.
  332. SecurityLevel SecurityLevel `protobuf:"varint,5,opt,name=security_level,json=securityLevel,proto3,enum=google.appengine.v1.SecurityLevel" json:"security_level,omitempty"`
  333. // Level of login required to access this resource.
  334. Login LoginRequirement `protobuf:"varint,6,opt,name=login,proto3,enum=google.appengine.v1.LoginRequirement" json:"login,omitempty"`
  335. // Action to take when users access resources that require
  336. // authentication. Defaults to `redirect`.
  337. AuthFailAction AuthFailAction `protobuf:"varint,7,opt,name=auth_fail_action,json=authFailAction,proto3,enum=google.appengine.v1.AuthFailAction" json:"auth_fail_action,omitempty"`
  338. // `30x` code to use when performing redirects for the `secure` field.
  339. // Defaults to `302`.
  340. RedirectHttpResponseCode UrlMap_RedirectHttpResponseCode `protobuf:"varint,8,opt,name=redirect_http_response_code,json=redirectHttpResponseCode,proto3,enum=google.appengine.v1.UrlMap_RedirectHttpResponseCode" json:"redirect_http_response_code,omitempty"`
  341. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  342. XXX_unrecognized []byte `json:"-"`
  343. XXX_sizecache int32 `json:"-"`
  344. }
  345. func (m *UrlMap) Reset() { *m = UrlMap{} }
  346. func (m *UrlMap) String() string { return proto.CompactTextString(m) }
  347. func (*UrlMap) ProtoMessage() {}
  348. func (*UrlMap) Descriptor() ([]byte, []int) {
  349. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{2}
  350. }
  351. func (m *UrlMap) XXX_Unmarshal(b []byte) error {
  352. return xxx_messageInfo_UrlMap.Unmarshal(m, b)
  353. }
  354. func (m *UrlMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  355. return xxx_messageInfo_UrlMap.Marshal(b, m, deterministic)
  356. }
  357. func (dst *UrlMap) XXX_Merge(src proto.Message) {
  358. xxx_messageInfo_UrlMap.Merge(dst, src)
  359. }
  360. func (m *UrlMap) XXX_Size() int {
  361. return xxx_messageInfo_UrlMap.Size(m)
  362. }
  363. func (m *UrlMap) XXX_DiscardUnknown() {
  364. xxx_messageInfo_UrlMap.DiscardUnknown(m)
  365. }
  366. var xxx_messageInfo_UrlMap proto.InternalMessageInfo
  367. func (m *UrlMap) GetUrlRegex() string {
  368. if m != nil {
  369. return m.UrlRegex
  370. }
  371. return ""
  372. }
  373. type isUrlMap_HandlerType interface {
  374. isUrlMap_HandlerType()
  375. }
  376. type UrlMap_StaticFiles struct {
  377. StaticFiles *StaticFilesHandler `protobuf:"bytes,2,opt,name=static_files,json=staticFiles,proto3,oneof"`
  378. }
  379. type UrlMap_Script struct {
  380. Script *ScriptHandler `protobuf:"bytes,3,opt,name=script,proto3,oneof"`
  381. }
  382. type UrlMap_ApiEndpoint struct {
  383. ApiEndpoint *ApiEndpointHandler `protobuf:"bytes,4,opt,name=api_endpoint,json=apiEndpoint,proto3,oneof"`
  384. }
  385. func (*UrlMap_StaticFiles) isUrlMap_HandlerType() {}
  386. func (*UrlMap_Script) isUrlMap_HandlerType() {}
  387. func (*UrlMap_ApiEndpoint) isUrlMap_HandlerType() {}
  388. func (m *UrlMap) GetHandlerType() isUrlMap_HandlerType {
  389. if m != nil {
  390. return m.HandlerType
  391. }
  392. return nil
  393. }
  394. func (m *UrlMap) GetStaticFiles() *StaticFilesHandler {
  395. if x, ok := m.GetHandlerType().(*UrlMap_StaticFiles); ok {
  396. return x.StaticFiles
  397. }
  398. return nil
  399. }
  400. func (m *UrlMap) GetScript() *ScriptHandler {
  401. if x, ok := m.GetHandlerType().(*UrlMap_Script); ok {
  402. return x.Script
  403. }
  404. return nil
  405. }
  406. func (m *UrlMap) GetApiEndpoint() *ApiEndpointHandler {
  407. if x, ok := m.GetHandlerType().(*UrlMap_ApiEndpoint); ok {
  408. return x.ApiEndpoint
  409. }
  410. return nil
  411. }
  412. func (m *UrlMap) GetSecurityLevel() SecurityLevel {
  413. if m != nil {
  414. return m.SecurityLevel
  415. }
  416. return SecurityLevel_SECURE_UNSPECIFIED
  417. }
  418. func (m *UrlMap) GetLogin() LoginRequirement {
  419. if m != nil {
  420. return m.Login
  421. }
  422. return LoginRequirement_LOGIN_UNSPECIFIED
  423. }
  424. func (m *UrlMap) GetAuthFailAction() AuthFailAction {
  425. if m != nil {
  426. return m.AuthFailAction
  427. }
  428. return AuthFailAction_AUTH_FAIL_ACTION_UNSPECIFIED
  429. }
  430. func (m *UrlMap) GetRedirectHttpResponseCode() UrlMap_RedirectHttpResponseCode {
  431. if m != nil {
  432. return m.RedirectHttpResponseCode
  433. }
  434. return UrlMap_REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED
  435. }
  436. // XXX_OneofFuncs is for the internal use of the proto package.
  437. func (*UrlMap) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
  438. return _UrlMap_OneofMarshaler, _UrlMap_OneofUnmarshaler, _UrlMap_OneofSizer, []interface{}{
  439. (*UrlMap_StaticFiles)(nil),
  440. (*UrlMap_Script)(nil),
  441. (*UrlMap_ApiEndpoint)(nil),
  442. }
  443. }
  444. func _UrlMap_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
  445. m := msg.(*UrlMap)
  446. // handler_type
  447. switch x := m.HandlerType.(type) {
  448. case *UrlMap_StaticFiles:
  449. b.EncodeVarint(2<<3 | proto.WireBytes)
  450. if err := b.EncodeMessage(x.StaticFiles); err != nil {
  451. return err
  452. }
  453. case *UrlMap_Script:
  454. b.EncodeVarint(3<<3 | proto.WireBytes)
  455. if err := b.EncodeMessage(x.Script); err != nil {
  456. return err
  457. }
  458. case *UrlMap_ApiEndpoint:
  459. b.EncodeVarint(4<<3 | proto.WireBytes)
  460. if err := b.EncodeMessage(x.ApiEndpoint); err != nil {
  461. return err
  462. }
  463. case nil:
  464. default:
  465. return fmt.Errorf("UrlMap.HandlerType has unexpected type %T", x)
  466. }
  467. return nil
  468. }
  469. func _UrlMap_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
  470. m := msg.(*UrlMap)
  471. switch tag {
  472. case 2: // handler_type.static_files
  473. if wire != proto.WireBytes {
  474. return true, proto.ErrInternalBadWireType
  475. }
  476. msg := new(StaticFilesHandler)
  477. err := b.DecodeMessage(msg)
  478. m.HandlerType = &UrlMap_StaticFiles{msg}
  479. return true, err
  480. case 3: // handler_type.script
  481. if wire != proto.WireBytes {
  482. return true, proto.ErrInternalBadWireType
  483. }
  484. msg := new(ScriptHandler)
  485. err := b.DecodeMessage(msg)
  486. m.HandlerType = &UrlMap_Script{msg}
  487. return true, err
  488. case 4: // handler_type.api_endpoint
  489. if wire != proto.WireBytes {
  490. return true, proto.ErrInternalBadWireType
  491. }
  492. msg := new(ApiEndpointHandler)
  493. err := b.DecodeMessage(msg)
  494. m.HandlerType = &UrlMap_ApiEndpoint{msg}
  495. return true, err
  496. default:
  497. return false, nil
  498. }
  499. }
  500. func _UrlMap_OneofSizer(msg proto.Message) (n int) {
  501. m := msg.(*UrlMap)
  502. // handler_type
  503. switch x := m.HandlerType.(type) {
  504. case *UrlMap_StaticFiles:
  505. s := proto.Size(x.StaticFiles)
  506. n += 1 // tag and wire
  507. n += proto.SizeVarint(uint64(s))
  508. n += s
  509. case *UrlMap_Script:
  510. s := proto.Size(x.Script)
  511. n += 1 // tag and wire
  512. n += proto.SizeVarint(uint64(s))
  513. n += s
  514. case *UrlMap_ApiEndpoint:
  515. s := proto.Size(x.ApiEndpoint)
  516. n += 1 // tag and wire
  517. n += proto.SizeVarint(uint64(s))
  518. n += s
  519. case nil:
  520. default:
  521. panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
  522. }
  523. return n
  524. }
  525. // Files served directly to the user for a given URL, such as images, CSS
  526. // stylesheets, or JavaScript source files. Static file handlers describe which
  527. // files in the application directory are static files, and which URLs serve
  528. // them.
  529. type StaticFilesHandler struct {
  530. // Path to the static files matched by the URL pattern, from the
  531. // application root directory. The path can refer to text matched in groupings
  532. // in the URL pattern.
  533. Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
  534. // Regular expression that matches the file paths for all files that should be
  535. // referenced by this handler.
  536. UploadPathRegex string `protobuf:"bytes,2,opt,name=upload_path_regex,json=uploadPathRegex,proto3" json:"upload_path_regex,omitempty"`
  537. // HTTP headers to use for all responses from these URLs.
  538. HttpHeaders map[string]string `protobuf:"bytes,3,rep,name=http_headers,json=httpHeaders,proto3" json:"http_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  539. // MIME type used to serve all files served by this handler.
  540. //
  541. // Defaults to file-specific MIME types, which are derived from each file's
  542. // filename extension.
  543. MimeType string `protobuf:"bytes,4,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"`
  544. // Time a static file served by this handler should be cached
  545. // by web proxies and browsers.
  546. Expiration *duration.Duration `protobuf:"bytes,5,opt,name=expiration,proto3" json:"expiration,omitempty"`
  547. // Whether this handler should match the request if the file
  548. // referenced by the handler does not exist.
  549. RequireMatchingFile bool `protobuf:"varint,6,opt,name=require_matching_file,json=requireMatchingFile,proto3" json:"require_matching_file,omitempty"`
  550. // Whether files should also be uploaded as code data. By default, files
  551. // declared in static file handlers are uploaded as static
  552. // data and are only served to end users; they cannot be read by the
  553. // application. If enabled, uploads are charged against both your code and
  554. // static data storage resource quotas.
  555. ApplicationReadable bool `protobuf:"varint,7,opt,name=application_readable,json=applicationReadable,proto3" json:"application_readable,omitempty"`
  556. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  557. XXX_unrecognized []byte `json:"-"`
  558. XXX_sizecache int32 `json:"-"`
  559. }
  560. func (m *StaticFilesHandler) Reset() { *m = StaticFilesHandler{} }
  561. func (m *StaticFilesHandler) String() string { return proto.CompactTextString(m) }
  562. func (*StaticFilesHandler) ProtoMessage() {}
  563. func (*StaticFilesHandler) Descriptor() ([]byte, []int) {
  564. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{3}
  565. }
  566. func (m *StaticFilesHandler) XXX_Unmarshal(b []byte) error {
  567. return xxx_messageInfo_StaticFilesHandler.Unmarshal(m, b)
  568. }
  569. func (m *StaticFilesHandler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  570. return xxx_messageInfo_StaticFilesHandler.Marshal(b, m, deterministic)
  571. }
  572. func (dst *StaticFilesHandler) XXX_Merge(src proto.Message) {
  573. xxx_messageInfo_StaticFilesHandler.Merge(dst, src)
  574. }
  575. func (m *StaticFilesHandler) XXX_Size() int {
  576. return xxx_messageInfo_StaticFilesHandler.Size(m)
  577. }
  578. func (m *StaticFilesHandler) XXX_DiscardUnknown() {
  579. xxx_messageInfo_StaticFilesHandler.DiscardUnknown(m)
  580. }
  581. var xxx_messageInfo_StaticFilesHandler proto.InternalMessageInfo
  582. func (m *StaticFilesHandler) GetPath() string {
  583. if m != nil {
  584. return m.Path
  585. }
  586. return ""
  587. }
  588. func (m *StaticFilesHandler) GetUploadPathRegex() string {
  589. if m != nil {
  590. return m.UploadPathRegex
  591. }
  592. return ""
  593. }
  594. func (m *StaticFilesHandler) GetHttpHeaders() map[string]string {
  595. if m != nil {
  596. return m.HttpHeaders
  597. }
  598. return nil
  599. }
  600. func (m *StaticFilesHandler) GetMimeType() string {
  601. if m != nil {
  602. return m.MimeType
  603. }
  604. return ""
  605. }
  606. func (m *StaticFilesHandler) GetExpiration() *duration.Duration {
  607. if m != nil {
  608. return m.Expiration
  609. }
  610. return nil
  611. }
  612. func (m *StaticFilesHandler) GetRequireMatchingFile() bool {
  613. if m != nil {
  614. return m.RequireMatchingFile
  615. }
  616. return false
  617. }
  618. func (m *StaticFilesHandler) GetApplicationReadable() bool {
  619. if m != nil {
  620. return m.ApplicationReadable
  621. }
  622. return false
  623. }
  624. // Executes a script to handle the request that matches the URL pattern.
  625. type ScriptHandler struct {
  626. // Path to the script from the application root directory.
  627. ScriptPath string `protobuf:"bytes,1,opt,name=script_path,json=scriptPath,proto3" json:"script_path,omitempty"`
  628. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  629. XXX_unrecognized []byte `json:"-"`
  630. XXX_sizecache int32 `json:"-"`
  631. }
  632. func (m *ScriptHandler) Reset() { *m = ScriptHandler{} }
  633. func (m *ScriptHandler) String() string { return proto.CompactTextString(m) }
  634. func (*ScriptHandler) ProtoMessage() {}
  635. func (*ScriptHandler) Descriptor() ([]byte, []int) {
  636. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{4}
  637. }
  638. func (m *ScriptHandler) XXX_Unmarshal(b []byte) error {
  639. return xxx_messageInfo_ScriptHandler.Unmarshal(m, b)
  640. }
  641. func (m *ScriptHandler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  642. return xxx_messageInfo_ScriptHandler.Marshal(b, m, deterministic)
  643. }
  644. func (dst *ScriptHandler) XXX_Merge(src proto.Message) {
  645. xxx_messageInfo_ScriptHandler.Merge(dst, src)
  646. }
  647. func (m *ScriptHandler) XXX_Size() int {
  648. return xxx_messageInfo_ScriptHandler.Size(m)
  649. }
  650. func (m *ScriptHandler) XXX_DiscardUnknown() {
  651. xxx_messageInfo_ScriptHandler.DiscardUnknown(m)
  652. }
  653. var xxx_messageInfo_ScriptHandler proto.InternalMessageInfo
  654. func (m *ScriptHandler) GetScriptPath() string {
  655. if m != nil {
  656. return m.ScriptPath
  657. }
  658. return ""
  659. }
  660. // Uses Google Cloud Endpoints to handle requests.
  661. type ApiEndpointHandler struct {
  662. // Path to the script from the application root directory.
  663. ScriptPath string `protobuf:"bytes,1,opt,name=script_path,json=scriptPath,proto3" json:"script_path,omitempty"`
  664. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  665. XXX_unrecognized []byte `json:"-"`
  666. XXX_sizecache int32 `json:"-"`
  667. }
  668. func (m *ApiEndpointHandler) Reset() { *m = ApiEndpointHandler{} }
  669. func (m *ApiEndpointHandler) String() string { return proto.CompactTextString(m) }
  670. func (*ApiEndpointHandler) ProtoMessage() {}
  671. func (*ApiEndpointHandler) Descriptor() ([]byte, []int) {
  672. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{5}
  673. }
  674. func (m *ApiEndpointHandler) XXX_Unmarshal(b []byte) error {
  675. return xxx_messageInfo_ApiEndpointHandler.Unmarshal(m, b)
  676. }
  677. func (m *ApiEndpointHandler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  678. return xxx_messageInfo_ApiEndpointHandler.Marshal(b, m, deterministic)
  679. }
  680. func (dst *ApiEndpointHandler) XXX_Merge(src proto.Message) {
  681. xxx_messageInfo_ApiEndpointHandler.Merge(dst, src)
  682. }
  683. func (m *ApiEndpointHandler) XXX_Size() int {
  684. return xxx_messageInfo_ApiEndpointHandler.Size(m)
  685. }
  686. func (m *ApiEndpointHandler) XXX_DiscardUnknown() {
  687. xxx_messageInfo_ApiEndpointHandler.DiscardUnknown(m)
  688. }
  689. var xxx_messageInfo_ApiEndpointHandler proto.InternalMessageInfo
  690. func (m *ApiEndpointHandler) GetScriptPath() string {
  691. if m != nil {
  692. return m.ScriptPath
  693. }
  694. return ""
  695. }
  696. // Health checking configuration for VM instances. Unhealthy instances
  697. // are killed and replaced with new instances. Only applicable for
  698. // instances in App Engine flexible environment.
  699. type HealthCheck struct {
  700. // Whether to explicitly disable health checks for this instance.
  701. DisableHealthCheck bool `protobuf:"varint,1,opt,name=disable_health_check,json=disableHealthCheck,proto3" json:"disable_health_check,omitempty"`
  702. // Host header to send when performing an HTTP health check.
  703. // Example: "myapp.appspot.com"
  704. Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"`
  705. // Number of consecutive successful health checks required before receiving
  706. // traffic.
  707. HealthyThreshold uint32 `protobuf:"varint,3,opt,name=healthy_threshold,json=healthyThreshold,proto3" json:"healthy_threshold,omitempty"`
  708. // Number of consecutive failed health checks required before removing
  709. // traffic.
  710. UnhealthyThreshold uint32 `protobuf:"varint,4,opt,name=unhealthy_threshold,json=unhealthyThreshold,proto3" json:"unhealthy_threshold,omitempty"`
  711. // Number of consecutive failed health checks required before an instance is
  712. // restarted.
  713. RestartThreshold uint32 `protobuf:"varint,5,opt,name=restart_threshold,json=restartThreshold,proto3" json:"restart_threshold,omitempty"`
  714. // Interval between health checks.
  715. CheckInterval *duration.Duration `protobuf:"bytes,6,opt,name=check_interval,json=checkInterval,proto3" json:"check_interval,omitempty"`
  716. // Time before the health check is considered failed.
  717. Timeout *duration.Duration `protobuf:"bytes,7,opt,name=timeout,proto3" json:"timeout,omitempty"`
  718. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  719. XXX_unrecognized []byte `json:"-"`
  720. XXX_sizecache int32 `json:"-"`
  721. }
  722. func (m *HealthCheck) Reset() { *m = HealthCheck{} }
  723. func (m *HealthCheck) String() string { return proto.CompactTextString(m) }
  724. func (*HealthCheck) ProtoMessage() {}
  725. func (*HealthCheck) Descriptor() ([]byte, []int) {
  726. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{6}
  727. }
  728. func (m *HealthCheck) XXX_Unmarshal(b []byte) error {
  729. return xxx_messageInfo_HealthCheck.Unmarshal(m, b)
  730. }
  731. func (m *HealthCheck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  732. return xxx_messageInfo_HealthCheck.Marshal(b, m, deterministic)
  733. }
  734. func (dst *HealthCheck) XXX_Merge(src proto.Message) {
  735. xxx_messageInfo_HealthCheck.Merge(dst, src)
  736. }
  737. func (m *HealthCheck) XXX_Size() int {
  738. return xxx_messageInfo_HealthCheck.Size(m)
  739. }
  740. func (m *HealthCheck) XXX_DiscardUnknown() {
  741. xxx_messageInfo_HealthCheck.DiscardUnknown(m)
  742. }
  743. var xxx_messageInfo_HealthCheck proto.InternalMessageInfo
  744. func (m *HealthCheck) GetDisableHealthCheck() bool {
  745. if m != nil {
  746. return m.DisableHealthCheck
  747. }
  748. return false
  749. }
  750. func (m *HealthCheck) GetHost() string {
  751. if m != nil {
  752. return m.Host
  753. }
  754. return ""
  755. }
  756. func (m *HealthCheck) GetHealthyThreshold() uint32 {
  757. if m != nil {
  758. return m.HealthyThreshold
  759. }
  760. return 0
  761. }
  762. func (m *HealthCheck) GetUnhealthyThreshold() uint32 {
  763. if m != nil {
  764. return m.UnhealthyThreshold
  765. }
  766. return 0
  767. }
  768. func (m *HealthCheck) GetRestartThreshold() uint32 {
  769. if m != nil {
  770. return m.RestartThreshold
  771. }
  772. return 0
  773. }
  774. func (m *HealthCheck) GetCheckInterval() *duration.Duration {
  775. if m != nil {
  776. return m.CheckInterval
  777. }
  778. return nil
  779. }
  780. func (m *HealthCheck) GetTimeout() *duration.Duration {
  781. if m != nil {
  782. return m.Timeout
  783. }
  784. return nil
  785. }
  786. // Third-party Python runtime library that is required by the application.
  787. type Library struct {
  788. // Name of the library. Example: "django".
  789. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  790. // Version of the library to select, or "latest".
  791. Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
  792. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  793. XXX_unrecognized []byte `json:"-"`
  794. XXX_sizecache int32 `json:"-"`
  795. }
  796. func (m *Library) Reset() { *m = Library{} }
  797. func (m *Library) String() string { return proto.CompactTextString(m) }
  798. func (*Library) ProtoMessage() {}
  799. func (*Library) Descriptor() ([]byte, []int) {
  800. return fileDescriptor_app_yaml_54d292683d9ed7b2, []int{7}
  801. }
  802. func (m *Library) XXX_Unmarshal(b []byte) error {
  803. return xxx_messageInfo_Library.Unmarshal(m, b)
  804. }
  805. func (m *Library) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  806. return xxx_messageInfo_Library.Marshal(b, m, deterministic)
  807. }
  808. func (dst *Library) XXX_Merge(src proto.Message) {
  809. xxx_messageInfo_Library.Merge(dst, src)
  810. }
  811. func (m *Library) XXX_Size() int {
  812. return xxx_messageInfo_Library.Size(m)
  813. }
  814. func (m *Library) XXX_DiscardUnknown() {
  815. xxx_messageInfo_Library.DiscardUnknown(m)
  816. }
  817. var xxx_messageInfo_Library proto.InternalMessageInfo
  818. func (m *Library) GetName() string {
  819. if m != nil {
  820. return m.Name
  821. }
  822. return ""
  823. }
  824. func (m *Library) GetVersion() string {
  825. if m != nil {
  826. return m.Version
  827. }
  828. return ""
  829. }
  830. func init() {
  831. proto.RegisterType((*ApiConfigHandler)(nil), "google.appengine.v1.ApiConfigHandler")
  832. proto.RegisterType((*ErrorHandler)(nil), "google.appengine.v1.ErrorHandler")
  833. proto.RegisterType((*UrlMap)(nil), "google.appengine.v1.UrlMap")
  834. proto.RegisterType((*StaticFilesHandler)(nil), "google.appengine.v1.StaticFilesHandler")
  835. proto.RegisterMapType((map[string]string)(nil), "google.appengine.v1.StaticFilesHandler.HttpHeadersEntry")
  836. proto.RegisterType((*ScriptHandler)(nil), "google.appengine.v1.ScriptHandler")
  837. proto.RegisterType((*ApiEndpointHandler)(nil), "google.appengine.v1.ApiEndpointHandler")
  838. proto.RegisterType((*HealthCheck)(nil), "google.appengine.v1.HealthCheck")
  839. proto.RegisterType((*Library)(nil), "google.appengine.v1.Library")
  840. proto.RegisterEnum("google.appengine.v1.AuthFailAction", AuthFailAction_name, AuthFailAction_value)
  841. proto.RegisterEnum("google.appengine.v1.LoginRequirement", LoginRequirement_name, LoginRequirement_value)
  842. proto.RegisterEnum("google.appengine.v1.SecurityLevel", SecurityLevel_name, SecurityLevel_value)
  843. proto.RegisterEnum("google.appengine.v1.ErrorHandler_ErrorCode", ErrorHandler_ErrorCode_name, ErrorHandler_ErrorCode_value)
  844. proto.RegisterEnum("google.appengine.v1.UrlMap_RedirectHttpResponseCode", UrlMap_RedirectHttpResponseCode_name, UrlMap_RedirectHttpResponseCode_value)
  845. }
  846. func init() {
  847. proto.RegisterFile("google/appengine/v1/app_yaml.proto", fileDescriptor_app_yaml_54d292683d9ed7b2)
  848. }
  849. var fileDescriptor_app_yaml_54d292683d9ed7b2 = []byte{
  850. // 1232 bytes of a gzipped FileDescriptorProto
  851. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdd, 0x6e, 0x13, 0x47,
  852. 0x14, 0xc6, 0x76, 0x7e, 0x8f, 0x1d, 0xb3, 0x99, 0x00, 0x75, 0x02, 0x94, 0xd4, 0xa8, 0x02, 0x25,
  853. 0x92, 0x4d, 0x92, 0x56, 0xd0, 0x82, 0xaa, 0x2e, 0xf6, 0xa6, 0xde, 0xca, 0x89, 0xcd, 0xd8, 0xa6,
  854. 0x82, 0x5e, 0x8c, 0x26, 0xf6, 0xc4, 0x3b, 0x62, 0xbd, 0xbb, 0x9d, 0x1d, 0x47, 0xf8, 0x39, 0xaa,
  855. 0xbe, 0x07, 0xb7, 0x7d, 0x90, 0x5e, 0xf5, 0x65, 0xaa, 0x99, 0x1d, 0xff, 0x25, 0x0e, 0xa9, 0xb8,
  856. 0x9b, 0x73, 0xce, 0xf7, 0x9d, 0x9d, 0xf3, 0x3b, 0x0b, 0xc5, 0x7e, 0x18, 0xf6, 0x7d, 0x56, 0xa6,
  857. 0x51, 0xc4, 0x82, 0x3e, 0x0f, 0x58, 0xf9, 0xe2, 0x40, 0x09, 0x64, 0x44, 0x07, 0x7e, 0x29, 0x12,
  858. 0xa1, 0x0c, 0xd1, 0x56, 0x82, 0x29, 0x4d, 0x30, 0xa5, 0x8b, 0x83, 0x9d, 0x07, 0x13, 0x22, 0x2f,
  859. 0xd3, 0x20, 0x08, 0x25, 0x95, 0x3c, 0x0c, 0xe2, 0x84, 0xb2, 0xf3, 0xb5, 0xb1, 0x6a, 0xe9, 0x6c,
  860. 0x78, 0x5e, 0xee, 0x0d, 0x85, 0x06, 0x24, 0xf6, 0xe2, 0x9f, 0x69, 0xb0, 0xec, 0x88, 0x57, 0xc2,
  861. 0xe0, 0x9c, 0xf7, 0x6b, 0x34, 0xe8, 0xf9, 0x4c, 0xa0, 0x13, 0xb0, 0xe8, 0x50, 0x7a, 0xe4, 0x9c,
  862. 0x72, 0x9f, 0xd0, 0xae, 0x82, 0x17, 0x52, 0xbb, 0xa9, 0xa7, 0xf9, 0xc3, 0xc7, 0xa5, 0x05, 0x57,
  863. 0x28, 0xd9, 0x43, 0xe9, 0x1d, 0x53, 0xee, 0xdb, 0x1a, 0x8a, 0xf3, 0x74, 0x4e, 0x46, 0x2f, 0x61,
  864. 0xd9, 0x0f, 0xfb, 0x3c, 0x28, 0xa4, 0xb5, 0x8f, 0x6f, 0x17, 0xfa, 0xa8, 0x2b, 0x04, 0x66, 0x7f,
  865. 0x0c, 0xb9, 0x60, 0x03, 0x16, 0x48, 0x9c, 0x70, 0xd0, 0x3d, 0x58, 0x89, 0xbb, 0x82, 0x47, 0xb2,
  866. 0x90, 0xd9, 0x4d, 0x3d, 0x5d, 0xc7, 0x46, 0x42, 0x2e, 0xe4, 0x63, 0xd6, 0x1d, 0x0a, 0x2e, 0x47,
  867. 0xc4, 0x67, 0x17, 0xcc, 0x2f, 0x2c, 0x69, 0xef, 0xc5, 0x85, 0xde, 0x5b, 0x06, 0x5a, 0x57, 0x48,
  868. 0xbc, 0x11, 0xcf, 0x8a, 0xc8, 0x82, 0xcc, 0x50, 0xf8, 0x85, 0x65, 0xed, 0x5f, 0x1d, 0x8b, 0x9f,
  869. 0xd2, 0x90, 0x73, 0x84, 0x08, 0xc5, 0x38, 0x23, 0xbf, 0x02, 0x30, 0x25, 0x93, 0x6e, 0xd8, 0x63,
  870. 0x26, 0x17, 0xfb, 0x0b, 0xbf, 0x34, 0x4b, 0x4b, 0x84, 0x4a, 0xd8, 0x63, 0x78, 0x9d, 0x8d, 0x8f,
  871. 0xe8, 0x11, 0x64, 0x63, 0x55, 0xa4, 0x2e, 0x39, 0xe7, 0x3e, 0xd3, 0x49, 0x59, 0xc7, 0x90, 0xa8,
  872. 0x8e, 0xb9, 0xcf, 0xd0, 0x7d, 0x58, 0x1f, 0xf0, 0x01, 0x23, 0x72, 0x14, 0x31, 0x13, 0xf5, 0x9a,
  873. 0x52, 0xb4, 0x47, 0x11, 0x2b, 0xfe, 0x95, 0x82, 0xf5, 0x89, 0x5b, 0xb4, 0x03, 0xf7, 0x1c, 0x8c,
  874. 0x1b, 0x98, 0x54, 0x1a, 0x55, 0x87, 0x74, 0x4e, 0x5b, 0x4d, 0xa7, 0xe2, 0x1e, 0xbb, 0x4e, 0xd5,
  875. 0xba, 0x85, 0xee, 0x01, 0x9a, 0xb1, 0x55, 0x9d, 0x63, 0xbb, 0x53, 0x6f, 0x5b, 0xb7, 0xd0, 0x36,
  876. 0xdc, 0x9d, 0xd1, 0x37, 0xde, 0x3a, 0x98, 0xbc, 0xe9, 0x34, 0xda, 0xb6, 0x95, 0x42, 0x0f, 0x61,
  877. 0x7b, 0x96, 0xd2, 0x68, 0x11, 0xbb, 0xe9, 0x92, 0xaa, 0x73, 0xea, 0xda, 0x75, 0x2b, 0x7d, 0xc9,
  878. 0x63, 0xdb, 0x3d, 0x71, 0x1a, 0x9d, 0xb6, 0x95, 0xd9, 0x49, 0x5b, 0xa9, 0xe2, 0xdf, 0x2b, 0xb0,
  879. 0xd2, 0x11, 0xfe, 0x09, 0x8d, 0xd4, 0xfd, 0x87, 0xc2, 0x27, 0x82, 0xf5, 0xd9, 0x47, 0x9d, 0xab,
  880. 0x75, 0xbc, 0x36, 0x14, 0x3e, 0x56, 0x32, 0xaa, 0x43, 0x6e, 0x26, 0xfa, 0x58, 0x87, 0x9f, 0x3d,
  881. 0x7c, 0xb2, 0xb8, 0x6a, 0x93, 0x9c, 0xc4, 0x26, 0xa3, 0xb5, 0x5b, 0x38, 0x3b, 0xcd, 0x54, 0x8c,
  882. 0x5e, 0xcd, 0x75, 0x47, 0xf6, 0xba, 0xea, 0x6b, 0xc8, 0xd4, 0xc5, 0xb8, 0x87, 0xea, 0x90, 0xa3,
  883. 0x11, 0x27, 0x2c, 0xe8, 0x45, 0x21, 0x0f, 0xa4, 0xee, 0xa0, 0xeb, 0xee, 0x62, 0x47, 0xdc, 0x31,
  884. 0xb8, 0x99, 0xbb, 0xd0, 0xa9, 0x76, 0x41, 0x47, 0x2e, 0x7f, 0x69, 0x47, 0x4e, 0x26, 0x66, 0xe5,
  885. 0x0b, 0x26, 0x66, 0xd1, 0xf4, 0xae, 0x7e, 0xf9, 0xf4, 0xc6, 0x70, 0x5f, 0xb0, 0x1e, 0x17, 0xac,
  886. 0x2b, 0x89, 0x27, 0x65, 0x44, 0x04, 0x8b, 0xa3, 0x30, 0x88, 0x59, 0x32, 0x0b, 0x6b, 0xda, 0xf3,
  887. 0x77, 0x0b, 0x3d, 0x27, 0xfd, 0x50, 0xc2, 0x86, 0x5e, 0x93, 0x32, 0xc2, 0x86, 0xac, 0x87, 0xa2,
  888. 0x20, 0xae, 0xb1, 0x14, 0xff, 0x4d, 0x41, 0xe1, 0x3a, 0x1a, 0xda, 0x87, 0x27, 0xd8, 0xa9, 0xba,
  889. 0xd8, 0xa9, 0xb4, 0x49, 0xad, 0xdd, 0x6e, 0x12, 0xec, 0xb4, 0x9a, 0x8d, 0xd3, 0x96, 0xb3, 0x68,
  890. 0x0a, 0x1e, 0xc3, 0xa3, 0xcf, 0x81, 0x8f, 0x9e, 0x1d, 0x58, 0xa9, 0x9b, 0x41, 0x87, 0x56, 0xfa,
  891. 0x66, 0xd0, 0x91, 0x95, 0xb9, 0x19, 0xf4, 0xdc, 0x5a, 0x7a, 0x9d, 0x87, 0x9c, 0x97, 0xf4, 0x90,
  892. 0x9e, 0xf1, 0xe2, 0xa7, 0x0c, 0xa0, 0xab, 0xbd, 0x8e, 0x10, 0x2c, 0x45, 0x54, 0x7a, 0x66, 0x84,
  893. 0xf4, 0x19, 0xed, 0xc1, 0xe6, 0x30, 0xf2, 0x43, 0xda, 0x23, 0x4a, 0x34, 0x33, 0x96, 0xac, 0x90,
  894. 0xdb, 0x89, 0xa1, 0x49, 0xa5, 0x97, 0x8c, 0xda, 0xef, 0x90, 0xd3, 0x05, 0xf3, 0x18, 0xed, 0x31,
  895. 0x11, 0x17, 0x32, 0xbb, 0x99, 0xa7, 0xd9, 0xc3, 0x17, 0xff, 0x73, 0xd4, 0x4a, 0x2a, 0xef, 0xb5,
  896. 0x84, 0xea, 0x04, 0x52, 0x8c, 0x70, 0xd6, 0x9b, 0x6a, 0xe6, 0x97, 0xd4, 0xd2, 0xfc, 0x92, 0x42,
  897. 0x3f, 0x00, 0xb0, 0x8f, 0x11, 0x4f, 0x5e, 0x1a, 0x3d, 0x06, 0xd9, 0xc3, 0xed, 0xf1, 0x77, 0xc7,
  898. 0x4f, 0x51, 0xa9, 0x6a, 0x9e, 0x22, 0x3c, 0x03, 0x46, 0x87, 0x70, 0x57, 0x24, 0x3d, 0x4d, 0x06,
  899. 0x54, 0x76, 0x3d, 0x1e, 0xf4, 0x93, 0x3d, 0xa9, 0x46, 0x61, 0x0d, 0x6f, 0x19, 0xe3, 0x89, 0xb1,
  900. 0xe9, 0x85, 0x79, 0x00, 0x77, 0x68, 0x14, 0xf9, 0xbc, 0xab, 0x5d, 0x10, 0xc1, 0x68, 0x8f, 0x9e,
  901. 0xf9, 0x4c, 0x77, 0xfd, 0x1a, 0xde, 0x9a, 0xb1, 0x61, 0x63, 0xda, 0xf9, 0x09, 0xac, 0xcb, 0xf1,
  902. 0xa9, 0x77, 0xe0, 0x03, 0x1b, 0x99, 0x74, 0xab, 0x23, 0xba, 0x03, 0xcb, 0x17, 0xd4, 0x1f, 0x8e,
  903. 0x97, 0x74, 0x22, 0xfc, 0x98, 0x7e, 0x91, 0x2a, 0x3e, 0x83, 0x8d, 0xb9, 0xad, 0xa2, 0xb7, 0xba,
  904. 0x56, 0x90, 0x99, 0x9a, 0x41, 0xa2, 0x52, 0x25, 0x29, 0x7e, 0x0f, 0xe8, 0xea, 0x0e, 0xb9, 0x99,
  905. 0xf6, 0x4f, 0x1a, 0xb2, 0x35, 0x46, 0x7d, 0xe9, 0x55, 0x3c, 0xd6, 0xfd, 0x80, 0x9e, 0xc1, 0x9d,
  906. 0x1e, 0x8f, 0x55, 0x0c, 0xaa, 0xae, 0xbe, 0xf4, 0x48, 0x57, 0xe9, 0x35, 0x73, 0x0d, 0x23, 0x63,
  907. 0x9b, 0x65, 0x20, 0x58, 0xf2, 0xc2, 0x58, 0x9a, 0x18, 0xf4, 0x19, 0xed, 0xc3, 0x66, 0xc2, 0x1e,
  908. 0x11, 0xe9, 0x09, 0x16, 0x7b, 0xa1, 0xdf, 0xd3, 0x2b, 0x74, 0x03, 0x5b, 0xc6, 0xd0, 0x1e, 0xeb,
  909. 0x51, 0x19, 0xb6, 0x86, 0xc1, 0x55, 0xf8, 0x92, 0x86, 0xa3, 0x89, 0x69, 0x4a, 0xd8, 0x87, 0x4d,
  910. 0xc1, 0x62, 0x49, 0x85, 0x9c, 0x81, 0x2f, 0x27, 0xde, 0x8d, 0x61, 0x0a, 0xfe, 0x19, 0xf2, 0x3a,
  911. 0x02, 0xc2, 0x03, 0xc9, 0xc4, 0x05, 0xf5, 0x75, 0xa5, 0x3f, 0xdb, 0x2f, 0x1b, 0x9a, 0xe0, 0x1a,
  912. 0x3c, 0x3a, 0x82, 0x55, 0xc9, 0x07, 0x2c, 0x1c, 0x4a, 0x5d, 0xf1, 0xcf, 0x52, 0xc7, 0xc8, 0xe2,
  913. 0x73, 0x58, 0xad, 0xf3, 0x33, 0x41, 0xc5, 0x48, 0x25, 0x28, 0xa0, 0x03, 0x36, 0x9e, 0x33, 0x75,
  914. 0x46, 0x05, 0x58, 0xbd, 0x60, 0x22, 0x56, 0xed, 0x9b, 0xe4, 0x6d, 0x2c, 0xee, 0x49, 0xc8, 0xcf,
  915. 0x6f, 0x4c, 0xb4, 0x0b, 0x0f, 0xec, 0x4e, 0xbb, 0x46, 0x8e, 0x6d, 0xb7, 0x4e, 0xec, 0x4a, 0xdb,
  916. 0x6d, 0x9c, 0x5e, 0x5a, 0x42, 0x0f, 0x61, 0xfb, 0x0a, 0x62, 0xbc, 0x26, 0xac, 0x14, 0xfa, 0x06,
  917. 0x1e, 0x2e, 0x70, 0xa0, 0x54, 0x0d, 0xec, 0xbe, 0x77, 0xaa, 0x56, 0x7a, 0xef, 0x0c, 0xac, 0xcb,
  918. 0xfb, 0x1e, 0xdd, 0x85, 0xcd, 0x7a, 0xe3, 0x17, 0xf7, 0xf2, 0xc7, 0x10, 0xe4, 0x13, 0x75, 0xa3,
  919. 0xa9, 0x3c, 0xd9, 0x75, 0x2b, 0x85, 0x6e, 0x43, 0x36, 0xd1, 0xd9, 0xd5, 0x13, 0xf7, 0xd4, 0x4a,
  920. 0x4f, 0x41, 0xd8, 0x79, 0xd3, 0x71, 0xb1, 0x53, 0xb5, 0x32, 0x7b, 0x23, 0xd8, 0x98, 0x7b, 0x95,
  921. 0xd4, 0x7b, 0xdf, 0x72, 0x2a, 0x1d, 0xec, 0x5c, 0xfd, 0x82, 0xd1, 0x4f, 0xff, 0x2a, 0x2c, 0xc8,
  922. 0x19, 0xdd, 0xa9, 0xf3, 0xd6, 0xc1, 0x56, 0x0a, 0x6d, 0xc1, 0x6d, 0xa3, 0x99, 0x5c, 0x24, 0x8d,
  923. 0x36, 0x61, 0xc3, 0x28, 0xed, 0xfa, 0x6f, 0xf6, 0xbb, 0x56, 0xf2, 0xf7, 0xf0, 0xba, 0x0f, 0x5f,
  924. 0x75, 0xc3, 0xc1, 0xa2, 0xcd, 0xf4, 0x3a, 0x67, 0x47, 0xd1, 0x3b, 0x3a, 0xf0, 0x9b, 0xaa, 0x96,
  925. 0xcd, 0xd4, 0xfb, 0x57, 0x06, 0xd4, 0x0f, 0x7d, 0x1a, 0xf4, 0x4b, 0xa1, 0xe8, 0x97, 0xfb, 0x2c,
  926. 0xd0, 0x95, 0x2e, 0x27, 0x26, 0x1a, 0xf1, 0x78, 0xee, 0x3f, 0xfa, 0xe5, 0x44, 0x38, 0x5b, 0xd1,
  927. 0xc0, 0xa3, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x96, 0x5d, 0x26, 0x6c, 0x6f, 0x0b, 0x00, 0x00,
  928. }